{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.read_csv('A:\\\\Data Analysis Jupyter\\\\Water-Quality-Analysis\\\\Dataset\\\\water_dataX.csv', encoding=\"ISO-8859-1\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>STATION CODE</th>\n",
       "      <th>LOCATIONS</th>\n",
       "      <th>STATE</th>\n",
       "      <th>Temp</th>\n",
       "      <th>D.O. (mg/l)</th>\n",
       "      <th>PH</th>\n",
       "      <th>CONDUCTIVITY (µmhos/cm)</th>\n",
       "      <th>B.O.D. (mg/l)</th>\n",
       "      <th>NITRATENAN N+ NITRITENANN (mg/l)</th>\n",
       "      <th>FECAL COLIFORM (MPN/100ml)</th>\n",
       "      <th>TOTAL COLIFORM (MPN/100ml)Mean</th>\n",
       "      <th>year</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1393</td>\n",
       "      <td>DAMANGANGA AT D/S OF MADHUBAN, DAMAN</td>\n",
       "      <td>DAMAN &amp; DIU</td>\n",
       "      <td>30.6</td>\n",
       "      <td>6.7</td>\n",
       "      <td>7.5</td>\n",
       "      <td>203</td>\n",
       "      <td>NAN</td>\n",
       "      <td>0.1</td>\n",
       "      <td>11</td>\n",
       "      <td>27</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1399</td>\n",
       "      <td>ZUARI AT D/S OF PT. WHERE KUMBARJRIA CANAL JOI...</td>\n",
       "      <td>GOA</td>\n",
       "      <td>29.8</td>\n",
       "      <td>5.7</td>\n",
       "      <td>7.2</td>\n",
       "      <td>189</td>\n",
       "      <td>2</td>\n",
       "      <td>0.2</td>\n",
       "      <td>4953</td>\n",
       "      <td>8391</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1475</td>\n",
       "      <td>ZUARI AT PANCHAWADI</td>\n",
       "      <td>GOA</td>\n",
       "      <td>29.5</td>\n",
       "      <td>6.3</td>\n",
       "      <td>6.9</td>\n",
       "      <td>179</td>\n",
       "      <td>1.7</td>\n",
       "      <td>0.1</td>\n",
       "      <td>3243</td>\n",
       "      <td>5330</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3181</td>\n",
       "      <td>RIVER ZUARI AT BORIM BRIDGE</td>\n",
       "      <td>GOA</td>\n",
       "      <td>29.7</td>\n",
       "      <td>5.8</td>\n",
       "      <td>6.9</td>\n",
       "      <td>64</td>\n",
       "      <td>3.8</td>\n",
       "      <td>0.5</td>\n",
       "      <td>5382</td>\n",
       "      <td>8443</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3182</td>\n",
       "      <td>RIVER ZUARI AT MARCAIM JETTY</td>\n",
       "      <td>GOA</td>\n",
       "      <td>29.5</td>\n",
       "      <td>5.8</td>\n",
       "      <td>7.3</td>\n",
       "      <td>83</td>\n",
       "      <td>1.9</td>\n",
       "      <td>0.4</td>\n",
       "      <td>3428</td>\n",
       "      <td>5500</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  STATION CODE                                          LOCATIONS  \\\n",
       "0         1393               DAMANGANGA AT D/S OF MADHUBAN, DAMAN   \n",
       "1         1399  ZUARI AT D/S OF PT. WHERE KUMBARJRIA CANAL JOI...   \n",
       "2         1475                                ZUARI AT PANCHAWADI   \n",
       "3         3181                        RIVER ZUARI AT BORIM BRIDGE   \n",
       "4         3182                       RIVER ZUARI AT MARCAIM JETTY   \n",
       "\n",
       "         STATE  Temp D.O. (mg/l)   PH CONDUCTIVITY (µmhos/cm) B.O.D. (mg/l)  \\\n",
       "0  DAMAN & DIU  30.6         6.7  7.5                     203           NAN   \n",
       "1          GOA  29.8         5.7  7.2                     189             2   \n",
       "2          GOA  29.5         6.3  6.9                     179           1.7   \n",
       "3          GOA  29.7         5.8  6.9                      64           3.8   \n",
       "4          GOA  29.5         5.8  7.3                      83           1.9   \n",
       "\n",
       "  NITRATENAN N+ NITRITENANN (mg/l) FECAL COLIFORM (MPN/100ml)  \\\n",
       "0                              0.1                         11   \n",
       "1                              0.2                       4953   \n",
       "2                              0.1                       3243   \n",
       "3                              0.5                       5382   \n",
       "4                              0.4                       3428   \n",
       "\n",
       "  TOTAL COLIFORM (MPN/100ml)Mean  year  \n",
       "0                             27  2014  \n",
       "1                           8391  2014  \n",
       "2                           5330  2014  \n",
       "3                           8443  2014  \n",
       "4                           5500  2014  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.fillna(0, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>STATION CODE</th>\n",
       "      <th>LOCATIONS</th>\n",
       "      <th>STATE</th>\n",
       "      <th>Temp</th>\n",
       "      <th>D.O. (mg/l)</th>\n",
       "      <th>PH</th>\n",
       "      <th>CONDUCTIVITY (µmhos/cm)</th>\n",
       "      <th>B.O.D. (mg/l)</th>\n",
       "      <th>NITRATENAN N+ NITRITENANN (mg/l)</th>\n",
       "      <th>FECAL COLIFORM (MPN/100ml)</th>\n",
       "      <th>TOTAL COLIFORM (MPN/100ml)Mean</th>\n",
       "      <th>year</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1393</td>\n",
       "      <td>DAMANGANGA AT D/S OF MADHUBAN, DAMAN</td>\n",
       "      <td>DAMAN &amp; DIU</td>\n",
       "      <td>30.6</td>\n",
       "      <td>6.7</td>\n",
       "      <td>7.5</td>\n",
       "      <td>203</td>\n",
       "      <td>NAN</td>\n",
       "      <td>0.1</td>\n",
       "      <td>11</td>\n",
       "      <td>27</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1399</td>\n",
       "      <td>ZUARI AT D/S OF PT. WHERE KUMBARJRIA CANAL JOI...</td>\n",
       "      <td>GOA</td>\n",
       "      <td>29.8</td>\n",
       "      <td>5.7</td>\n",
       "      <td>7.2</td>\n",
       "      <td>189</td>\n",
       "      <td>2</td>\n",
       "      <td>0.2</td>\n",
       "      <td>4953</td>\n",
       "      <td>8391</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1475</td>\n",
       "      <td>ZUARI AT PANCHAWADI</td>\n",
       "      <td>GOA</td>\n",
       "      <td>29.5</td>\n",
       "      <td>6.3</td>\n",
       "      <td>6.9</td>\n",
       "      <td>179</td>\n",
       "      <td>1.7</td>\n",
       "      <td>0.1</td>\n",
       "      <td>3243</td>\n",
       "      <td>5330</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3181</td>\n",
       "      <td>RIVER ZUARI AT BORIM BRIDGE</td>\n",
       "      <td>GOA</td>\n",
       "      <td>29.7</td>\n",
       "      <td>5.8</td>\n",
       "      <td>6.9</td>\n",
       "      <td>64</td>\n",
       "      <td>3.8</td>\n",
       "      <td>0.5</td>\n",
       "      <td>5382</td>\n",
       "      <td>8443</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3182</td>\n",
       "      <td>RIVER ZUARI AT MARCAIM JETTY</td>\n",
       "      <td>GOA</td>\n",
       "      <td>29.5</td>\n",
       "      <td>5.8</td>\n",
       "      <td>7.3</td>\n",
       "      <td>83</td>\n",
       "      <td>1.9</td>\n",
       "      <td>0.4</td>\n",
       "      <td>3428</td>\n",
       "      <td>5500</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  STATION CODE                                          LOCATIONS  \\\n",
       "0         1393               DAMANGANGA AT D/S OF MADHUBAN, DAMAN   \n",
       "1         1399  ZUARI AT D/S OF PT. WHERE KUMBARJRIA CANAL JOI...   \n",
       "2         1475                                ZUARI AT PANCHAWADI   \n",
       "3         3181                        RIVER ZUARI AT BORIM BRIDGE   \n",
       "4         3182                       RIVER ZUARI AT MARCAIM JETTY   \n",
       "\n",
       "         STATE  Temp D.O. (mg/l)   PH CONDUCTIVITY (µmhos/cm) B.O.D. (mg/l)  \\\n",
       "0  DAMAN & DIU  30.6         6.7  7.5                     203           NAN   \n",
       "1          GOA  29.8         5.7  7.2                     189             2   \n",
       "2          GOA  29.5         6.3  6.9                     179           1.7   \n",
       "3          GOA  29.7         5.8  6.9                      64           3.8   \n",
       "4          GOA  29.5         5.8  7.3                      83           1.9   \n",
       "\n",
       "  NITRATENAN N+ NITRITENANN (mg/l) FECAL COLIFORM (MPN/100ml)  \\\n",
       "0                              0.1                         11   \n",
       "1                              0.2                       4953   \n",
       "2                              0.1                       3243   \n",
       "3                              0.5                       5382   \n",
       "4                              0.4                       3428   \n",
       "\n",
       "  TOTAL COLIFORM (MPN/100ml)Mean  year  \n",
       "0                             27  2014  \n",
       "1                           8391  2014  \n",
       "2                           5330  2014  \n",
       "3                           8443  2014  \n",
       "4                           5500  2014  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "STATION CODE                        object\n",
       "LOCATIONS                           object\n",
       "STATE                               object\n",
       "Temp                                object\n",
       "D.O. (mg/l)                         object\n",
       "PH                                  object\n",
       "CONDUCTIVITY (µmhos/cm)             object\n",
       "B.O.D. (mg/l)                       object\n",
       "NITRATENAN N+ NITRITENANN (mg/l)    object\n",
       "FECAL COLIFORM (MPN/100ml)          object\n",
       "TOTAL COLIFORM (MPN/100ml)Mean      object\n",
       "year                                 int64\n",
       "dtype: object"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.dtypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['STATION CODE', 'LOCATIONS', 'STATE', 'Temp', 'D.O. (mg/l)', 'PH',\n",
       "       'CONDUCTIVITY (µmhos/cm)', 'B.O.D. (mg/l)',\n",
       "       'NITRATENAN N+ NITRITENANN (mg/l)', 'FECAL COLIFORM (MPN/100ml)',\n",
       "       'TOTAL COLIFORM (MPN/100ml)Mean', 'year'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "data['Temp'] = pd.to_numeric(data['Temp'], errors = 'coerce')\n",
    "data['D.O. (mg/l)'] = pd.to_numeric(data['D.O. (mg/l)'], errors = 'coerce')\n",
    "data['PH'] = pd.to_numeric(data['PH'], errors='coerce')\n",
    "data['B.O.D. (mg/l)'] = pd.to_numeric(data['B.O.D. (mg/l)'], errors='coerce')\n",
    "data['CONDUCTIVITY (µmhos/cm)'] = pd.to_numeric(data['CONDUCTIVITY (µmhos/cm)'], errors='coerce')\n",
    "data['NITRATENAN N+ NITRITENANN (mg/l)'] = pd.to_numeric(data['NITRATENAN N+ NITRITENANN (mg/l)'], errors='coerce')\n",
    "data['TOTAL COLIFORM (MPN/100ml)Mean'] = pd.to_numeric(data['TOTAL COLIFORM (MPN/100ml)Mean'], errors='coerce')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "STATION CODE                         object\n",
       "LOCATIONS                            object\n",
       "STATE                                object\n",
       "Temp                                float64\n",
       "D.O. (mg/l)                         float64\n",
       "PH                                  float64\n",
       "CONDUCTIVITY (µmhos/cm)             float64\n",
       "B.O.D. (mg/l)                       float64\n",
       "NITRATENAN N+ NITRITENANN (mg/l)    float64\n",
       "FECAL COLIFORM (MPN/100ml)           object\n",
       "TOTAL COLIFORM (MPN/100ml)Mean      float64\n",
       "year                                  int64\n",
       "dtype: object"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.dtypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dtype('float64')"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "start = 1\n",
    "end = 1779\n",
    "station = data.iloc[start:end, 0]\n",
    "location = data.iloc[start:end ,1]\n",
    "state = data.iloc[start:end, 2]\n",
    "do = data.iloc[start:end, 4].astype(np.float64)\n",
    "\n",
    "value=0\n",
    "\n",
    "ph = data.iloc[ start:end, 5]  \n",
    "co = data.iloc [start:end, 6].astype(np.float64)   \n",
    "  \n",
    "year = data.iloc[start:end, 11]\n",
    "tc = data.iloc[2:end, 10].astype(np.float64)\n",
    "\n",
    "\n",
    "bod = data.iloc[start:end, 7].astype(np.float64)\n",
    "na = data.iloc[start:end, 8].astype(np.float64)\n",
    "na.dtype"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>STATION CODE</th>\n",
       "      <th>LOCATIONS</th>\n",
       "      <th>STATE</th>\n",
       "      <th>Temp</th>\n",
       "      <th>D.O. (mg/l)</th>\n",
       "      <th>PH</th>\n",
       "      <th>CONDUCTIVITY (µmhos/cm)</th>\n",
       "      <th>B.O.D. (mg/l)</th>\n",
       "      <th>NITRATENAN N+ NITRITENANN (mg/l)</th>\n",
       "      <th>FECAL COLIFORM (MPN/100ml)</th>\n",
       "      <th>TOTAL COLIFORM (MPN/100ml)Mean</th>\n",
       "      <th>year</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1393</td>\n",
       "      <td>DAMANGANGA AT D/S OF MADHUBAN, DAMAN</td>\n",
       "      <td>DAMAN &amp; DIU</td>\n",
       "      <td>30.6</td>\n",
       "      <td>6.7</td>\n",
       "      <td>7.5</td>\n",
       "      <td>203.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.1</td>\n",
       "      <td>11</td>\n",
       "      <td>27.0</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1399</td>\n",
       "      <td>ZUARI AT D/S OF PT. WHERE KUMBARJRIA CANAL JOI...</td>\n",
       "      <td>GOA</td>\n",
       "      <td>29.8</td>\n",
       "      <td>5.7</td>\n",
       "      <td>7.2</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.2</td>\n",
       "      <td>4953</td>\n",
       "      <td>8391.0</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1475</td>\n",
       "      <td>ZUARI AT PANCHAWADI</td>\n",
       "      <td>GOA</td>\n",
       "      <td>29.5</td>\n",
       "      <td>6.3</td>\n",
       "      <td>6.9</td>\n",
       "      <td>179.0</td>\n",
       "      <td>1.7</td>\n",
       "      <td>0.1</td>\n",
       "      <td>3243</td>\n",
       "      <td>5330.0</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3181</td>\n",
       "      <td>RIVER ZUARI AT BORIM BRIDGE</td>\n",
       "      <td>GOA</td>\n",
       "      <td>29.7</td>\n",
       "      <td>5.8</td>\n",
       "      <td>6.9</td>\n",
       "      <td>64.0</td>\n",
       "      <td>3.8</td>\n",
       "      <td>0.5</td>\n",
       "      <td>5382</td>\n",
       "      <td>8443.0</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3182</td>\n",
       "      <td>RIVER ZUARI AT MARCAIM JETTY</td>\n",
       "      <td>GOA</td>\n",
       "      <td>29.5</td>\n",
       "      <td>5.8</td>\n",
       "      <td>7.3</td>\n",
       "      <td>83.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>0.4</td>\n",
       "      <td>3428</td>\n",
       "      <td>5500.0</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  STATION CODE                                          LOCATIONS  \\\n",
       "0         1393               DAMANGANGA AT D/S OF MADHUBAN, DAMAN   \n",
       "1         1399  ZUARI AT D/S OF PT. WHERE KUMBARJRIA CANAL JOI...   \n",
       "2         1475                                ZUARI AT PANCHAWADI   \n",
       "3         3181                        RIVER ZUARI AT BORIM BRIDGE   \n",
       "4         3182                       RIVER ZUARI AT MARCAIM JETTY   \n",
       "\n",
       "         STATE  Temp  D.O. (mg/l)   PH  CONDUCTIVITY (µmhos/cm)  \\\n",
       "0  DAMAN & DIU  30.6          6.7  7.5                    203.0   \n",
       "1          GOA  29.8          5.7  7.2                    189.0   \n",
       "2          GOA  29.5          6.3  6.9                    179.0   \n",
       "3          GOA  29.7          5.8  6.9                     64.0   \n",
       "4          GOA  29.5          5.8  7.3                     83.0   \n",
       "\n",
       "   B.O.D. (mg/l)  NITRATENAN N+ NITRITENANN (mg/l) FECAL COLIFORM (MPN/100ml)  \\\n",
       "0            NaN                               0.1                         11   \n",
       "1            2.0                               0.2                       4953   \n",
       "2            1.7                               0.1                       3243   \n",
       "3            3.8                               0.5                       5382   \n",
       "4            1.9                               0.4                       3428   \n",
       "\n",
       "   TOTAL COLIFORM (MPN/100ml)Mean  year  \n",
       "0                            27.0  2014  \n",
       "1                          8391.0  2014  \n",
       "2                          5330.0  2014  \n",
       "3                          8443.0  2014  \n",
       "4                          5500.0  2014  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.concat([station,location,state,do,ph,co,bod,na,tc,year], axis=1)\n",
    "\n",
    "data.columns = ['station','location','state','do','ph','co','bod','na','tc','year']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>station</th>\n",
       "      <th>location</th>\n",
       "      <th>state</th>\n",
       "      <th>do</th>\n",
       "      <th>ph</th>\n",
       "      <th>co</th>\n",
       "      <th>bod</th>\n",
       "      <th>na</th>\n",
       "      <th>tc</th>\n",
       "      <th>year</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1399</td>\n",
       "      <td>ZUARI AT D/S OF PT. WHERE KUMBARJRIA CANAL JOI...</td>\n",
       "      <td>GOA</td>\n",
       "      <td>5.7</td>\n",
       "      <td>7.2</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1475</td>\n",
       "      <td>ZUARI AT PANCHAWADI</td>\n",
       "      <td>GOA</td>\n",
       "      <td>6.3</td>\n",
       "      <td>6.9</td>\n",
       "      <td>179.0</td>\n",
       "      <td>1.7</td>\n",
       "      <td>0.1</td>\n",
       "      <td>5330.0</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3181</td>\n",
       "      <td>RIVER ZUARI AT BORIM BRIDGE</td>\n",
       "      <td>GOA</td>\n",
       "      <td>5.8</td>\n",
       "      <td>6.9</td>\n",
       "      <td>64.0</td>\n",
       "      <td>3.8</td>\n",
       "      <td>0.5</td>\n",
       "      <td>8443.0</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3182</td>\n",
       "      <td>RIVER ZUARI AT MARCAIM JETTY</td>\n",
       "      <td>GOA</td>\n",
       "      <td>5.8</td>\n",
       "      <td>7.3</td>\n",
       "      <td>83.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>0.4</td>\n",
       "      <td>5500.0</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1400</td>\n",
       "      <td>MANDOVI AT NEGHBOURHOOD OF PANAJI, GOA</td>\n",
       "      <td>GOA</td>\n",
       "      <td>5.5</td>\n",
       "      <td>7.4</td>\n",
       "      <td>81.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>0.1</td>\n",
       "      <td>4049.0</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  station                                           location state   do   ph  \\\n",
       "1    1399  ZUARI AT D/S OF PT. WHERE KUMBARJRIA CANAL JOI...   GOA  5.7  7.2   \n",
       "2    1475                                ZUARI AT PANCHAWADI   GOA  6.3  6.9   \n",
       "3    3181                        RIVER ZUARI AT BORIM BRIDGE   GOA  5.8  6.9   \n",
       "4    3182                       RIVER ZUARI AT MARCAIM JETTY   GOA  5.8  7.3   \n",
       "5    1400             MANDOVI AT NEGHBOURHOOD OF PANAJI, GOA   GOA  5.5  7.4   \n",
       "\n",
       "      co  bod   na      tc  year  \n",
       "1  189.0  2.0  0.2     NaN  2014  \n",
       "2  179.0  1.7  0.1  5330.0  2014  \n",
       "3   64.0  3.8  0.5  8443.0  2014  \n",
       "4   83.0  1.9  0.4  5500.0  2014  \n",
       "5   81.0  1.5  0.1  4049.0  2014  "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "#calulation of Ph\n",
    "data['npH']=data.ph.apply(lambda x: (100 if (8.5>=x>=7)  \n",
    "                                 else(80 if  (8.6>=x>=8.5) or (6.9>=x>=6.8) \n",
    "                                      else(60 if (8.8>=x>=8.6) or (6.8>=x>=6.7) \n",
    "                                          else(40 if (9>=x>=8.8) or (6.7>=x>=6.5)\n",
    "                                              else 0)))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "#calculation of dissolved oxygen\n",
    "data['ndo']=data.do.apply(lambda x:(100 if (x>=6)  \n",
    "                                 else(80 if  (6>=x>=5.1) \n",
    "                                      else(60 if (5>=x>=4.1)\n",
    "                                          else(40 if (4>=x>=3) \n",
    "                                              else 0)))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "#calculation of total coliform\n",
    "data['nco']=data.tc.apply(lambda x:(100 if (5>=x>=0)  \n",
    "                                 else(80 if  (50>=x>=5) \n",
    "                                      else(60 if (500>=x>=50)\n",
    "                                          else(40 if (10000>=x>=500) \n",
    "                                              else 0)))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "#calc of B.D.O\n",
    "data['nbdo']=data.bod.apply(lambda x:(100 if (3>=x>=0)  \n",
    "                                 else(80 if  (6>=x>=3) \n",
    "                                      else(60 if (80>=x>=6)\n",
    "                                          else(40 if (125>=x>=80) \n",
    "                                              else 0)))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "#calculation of electrical conductivity\n",
    "data['nec']=data.co.apply(lambda x:(100 if (75>=x>=0)  \n",
    "                                 else(80 if  (150>=x>=75) \n",
    "                                      else(60 if (225>=x>=150)\n",
    "                                          else(40 if (300>=x>=225) \n",
    "                                              else 0)))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Calulation of nitrate\n",
    "data['nna']=data.na.apply(lambda x:(100 if (20>=x>=0)  \n",
    "                                 else(80 if  (50>=x>=20) \n",
    "                                      else(60 if (100>=x>=50)\n",
    "                                          else(40 if (200>=x>=100) \n",
    "                                              else 0)))))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>station</th>\n",
       "      <th>location</th>\n",
       "      <th>state</th>\n",
       "      <th>do</th>\n",
       "      <th>ph</th>\n",
       "      <th>co</th>\n",
       "      <th>bod</th>\n",
       "      <th>na</th>\n",
       "      <th>tc</th>\n",
       "      <th>year</th>\n",
       "      <th>npH</th>\n",
       "      <th>ndo</th>\n",
       "      <th>nco</th>\n",
       "      <th>nbdo</th>\n",
       "      <th>nec</th>\n",
       "      <th>nna</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1399</td>\n",
       "      <td>ZUARI AT D/S OF PT. WHERE KUMBARJRIA CANAL JOI...</td>\n",
       "      <td>GOA</td>\n",
       "      <td>5.7</td>\n",
       "      <td>7.2</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2014</td>\n",
       "      <td>100</td>\n",
       "      <td>80</td>\n",
       "      <td>0</td>\n",
       "      <td>100</td>\n",
       "      <td>60</td>\n",
       "      <td>100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1475</td>\n",
       "      <td>ZUARI AT PANCHAWADI</td>\n",
       "      <td>GOA</td>\n",
       "      <td>6.3</td>\n",
       "      <td>6.9</td>\n",
       "      <td>179.0</td>\n",
       "      <td>1.7</td>\n",
       "      <td>0.1</td>\n",
       "      <td>5330.0</td>\n",
       "      <td>2014</td>\n",
       "      <td>80</td>\n",
       "      <td>100</td>\n",
       "      <td>40</td>\n",
       "      <td>100</td>\n",
       "      <td>60</td>\n",
       "      <td>100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3181</td>\n",
       "      <td>RIVER ZUARI AT BORIM BRIDGE</td>\n",
       "      <td>GOA</td>\n",
       "      <td>5.8</td>\n",
       "      <td>6.9</td>\n",
       "      <td>64.0</td>\n",
       "      <td>3.8</td>\n",
       "      <td>0.5</td>\n",
       "      <td>8443.0</td>\n",
       "      <td>2014</td>\n",
       "      <td>80</td>\n",
       "      <td>80</td>\n",
       "      <td>40</td>\n",
       "      <td>80</td>\n",
       "      <td>100</td>\n",
       "      <td>100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3182</td>\n",
       "      <td>RIVER ZUARI AT MARCAIM JETTY</td>\n",
       "      <td>GOA</td>\n",
       "      <td>5.8</td>\n",
       "      <td>7.3</td>\n",
       "      <td>83.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>0.4</td>\n",
       "      <td>5500.0</td>\n",
       "      <td>2014</td>\n",
       "      <td>100</td>\n",
       "      <td>80</td>\n",
       "      <td>40</td>\n",
       "      <td>100</td>\n",
       "      <td>80</td>\n",
       "      <td>100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1400</td>\n",
       "      <td>MANDOVI AT NEGHBOURHOOD OF PANAJI, GOA</td>\n",
       "      <td>GOA</td>\n",
       "      <td>5.5</td>\n",
       "      <td>7.4</td>\n",
       "      <td>81.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>0.1</td>\n",
       "      <td>4049.0</td>\n",
       "      <td>2014</td>\n",
       "      <td>100</td>\n",
       "      <td>80</td>\n",
       "      <td>40</td>\n",
       "      <td>100</td>\n",
       "      <td>80</td>\n",
       "      <td>100</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  station                                           location state   do   ph  \\\n",
       "1    1399  ZUARI AT D/S OF PT. WHERE KUMBARJRIA CANAL JOI...   GOA  5.7  7.2   \n",
       "2    1475                                ZUARI AT PANCHAWADI   GOA  6.3  6.9   \n",
       "3    3181                        RIVER ZUARI AT BORIM BRIDGE   GOA  5.8  6.9   \n",
       "4    3182                       RIVER ZUARI AT MARCAIM JETTY   GOA  5.8  7.3   \n",
       "5    1400             MANDOVI AT NEGHBOURHOOD OF PANAJI, GOA   GOA  5.5  7.4   \n",
       "\n",
       "      co  bod   na      tc  year  npH  ndo  nco  nbdo  nec  nna  \n",
       "1  189.0  2.0  0.2     NaN  2014  100   80    0   100   60  100  \n",
       "2  179.0  1.7  0.1  5330.0  2014   80  100   40   100   60  100  \n",
       "3   64.0  3.8  0.5  8443.0  2014   80   80   40    80  100  100  \n",
       "4   83.0  1.9  0.4  5500.0  2014  100   80   40   100   80  100  \n",
       "5   81.0  1.5  0.1  4049.0  2014  100   80   40   100   80  100  "
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "station      object\n",
       "location     object\n",
       "state        object\n",
       "do          float64\n",
       "ph          float64\n",
       "co          float64\n",
       "bod         float64\n",
       "na          float64\n",
       "tc          float64\n",
       "year          int64\n",
       "npH           int64\n",
       "ndo           int64\n",
       "nco           int64\n",
       "nbdo          int64\n",
       "nec           int64\n",
       "nna           int64\n",
       "dtype: object"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.dtypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "data['wph']=data.npH * 0.165\n",
    "data['wdo']=data.ndo * 0.281\n",
    "data['wbdo']=data.nbdo * 0.234\n",
    "data['wec']=data.nec* 0.009\n",
    "data['wna']=data.nna * 0.028\n",
    "data['wco']=data.nco * 0.281"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "data['wqi']=data.wph+data.wdo+data.wbdo+data.wec+data.wna+data.wco "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>station</th>\n",
       "      <th>location</th>\n",
       "      <th>state</th>\n",
       "      <th>do</th>\n",
       "      <th>ph</th>\n",
       "      <th>co</th>\n",
       "      <th>bod</th>\n",
       "      <th>na</th>\n",
       "      <th>tc</th>\n",
       "      <th>year</th>\n",
       "      <th>...</th>\n",
       "      <th>nbdo</th>\n",
       "      <th>nec</th>\n",
       "      <th>nna</th>\n",
       "      <th>wph</th>\n",
       "      <th>wdo</th>\n",
       "      <th>wbdo</th>\n",
       "      <th>wec</th>\n",
       "      <th>wna</th>\n",
       "      <th>wco</th>\n",
       "      <th>wqi</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1399</td>\n",
       "      <td>ZUARI AT D/S OF PT. WHERE KUMBARJRIA CANAL JOI...</td>\n",
       "      <td>GOA</td>\n",
       "      <td>5.7</td>\n",
       "      <td>7.2</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2014</td>\n",
       "      <td>...</td>\n",
       "      <td>100</td>\n",
       "      <td>60</td>\n",
       "      <td>100</td>\n",
       "      <td>16.5</td>\n",
       "      <td>22.48</td>\n",
       "      <td>23.40</td>\n",
       "      <td>0.54</td>\n",
       "      <td>2.8</td>\n",
       "      <td>0.00</td>\n",
       "      <td>65.72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1475</td>\n",
       "      <td>ZUARI AT PANCHAWADI</td>\n",
       "      <td>GOA</td>\n",
       "      <td>6.3</td>\n",
       "      <td>6.9</td>\n",
       "      <td>179.0</td>\n",
       "      <td>1.7</td>\n",
       "      <td>0.1</td>\n",
       "      <td>5330.0</td>\n",
       "      <td>2014</td>\n",
       "      <td>...</td>\n",
       "      <td>100</td>\n",
       "      <td>60</td>\n",
       "      <td>100</td>\n",
       "      <td>13.2</td>\n",
       "      <td>28.10</td>\n",
       "      <td>23.40</td>\n",
       "      <td>0.54</td>\n",
       "      <td>2.8</td>\n",
       "      <td>11.24</td>\n",
       "      <td>79.28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3181</td>\n",
       "      <td>RIVER ZUARI AT BORIM BRIDGE</td>\n",
       "      <td>GOA</td>\n",
       "      <td>5.8</td>\n",
       "      <td>6.9</td>\n",
       "      <td>64.0</td>\n",
       "      <td>3.8</td>\n",
       "      <td>0.5</td>\n",
       "      <td>8443.0</td>\n",
       "      <td>2014</td>\n",
       "      <td>...</td>\n",
       "      <td>80</td>\n",
       "      <td>100</td>\n",
       "      <td>100</td>\n",
       "      <td>13.2</td>\n",
       "      <td>22.48</td>\n",
       "      <td>18.72</td>\n",
       "      <td>0.90</td>\n",
       "      <td>2.8</td>\n",
       "      <td>11.24</td>\n",
       "      <td>69.34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3182</td>\n",
       "      <td>RIVER ZUARI AT MARCAIM JETTY</td>\n",
       "      <td>GOA</td>\n",
       "      <td>5.8</td>\n",
       "      <td>7.3</td>\n",
       "      <td>83.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>0.4</td>\n",
       "      <td>5500.0</td>\n",
       "      <td>2014</td>\n",
       "      <td>...</td>\n",
       "      <td>100</td>\n",
       "      <td>80</td>\n",
       "      <td>100</td>\n",
       "      <td>16.5</td>\n",
       "      <td>22.48</td>\n",
       "      <td>23.40</td>\n",
       "      <td>0.72</td>\n",
       "      <td>2.8</td>\n",
       "      <td>11.24</td>\n",
       "      <td>77.14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1400</td>\n",
       "      <td>MANDOVI AT NEGHBOURHOOD OF PANAJI, GOA</td>\n",
       "      <td>GOA</td>\n",
       "      <td>5.5</td>\n",
       "      <td>7.4</td>\n",
       "      <td>81.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>0.1</td>\n",
       "      <td>4049.0</td>\n",
       "      <td>2014</td>\n",
       "      <td>...</td>\n",
       "      <td>100</td>\n",
       "      <td>80</td>\n",
       "      <td>100</td>\n",
       "      <td>16.5</td>\n",
       "      <td>22.48</td>\n",
       "      <td>23.40</td>\n",
       "      <td>0.72</td>\n",
       "      <td>2.8</td>\n",
       "      <td>11.24</td>\n",
       "      <td>77.14</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 23 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "  station                                           location state   do   ph  \\\n",
       "1    1399  ZUARI AT D/S OF PT. WHERE KUMBARJRIA CANAL JOI...   GOA  5.7  7.2   \n",
       "2    1475                                ZUARI AT PANCHAWADI   GOA  6.3  6.9   \n",
       "3    3181                        RIVER ZUARI AT BORIM BRIDGE   GOA  5.8  6.9   \n",
       "4    3182                       RIVER ZUARI AT MARCAIM JETTY   GOA  5.8  7.3   \n",
       "5    1400             MANDOVI AT NEGHBOURHOOD OF PANAJI, GOA   GOA  5.5  7.4   \n",
       "\n",
       "      co  bod   na      tc  year  ...    nbdo  nec  nna   wph    wdo   wbdo  \\\n",
       "1  189.0  2.0  0.2     NaN  2014  ...     100   60  100  16.5  22.48  23.40   \n",
       "2  179.0  1.7  0.1  5330.0  2014  ...     100   60  100  13.2  28.10  23.40   \n",
       "3   64.0  3.8  0.5  8443.0  2014  ...      80  100  100  13.2  22.48  18.72   \n",
       "4   83.0  1.9  0.4  5500.0  2014  ...     100   80  100  16.5  22.48  23.40   \n",
       "5   81.0  1.5  0.1  4049.0  2014  ...     100   80  100  16.5  22.48  23.40   \n",
       "\n",
       "    wec  wna    wco    wqi  \n",
       "1  0.54  2.8   0.00  65.72  \n",
       "2  0.54  2.8  11.24  79.28  \n",
       "3  0.90  2.8  11.24  69.34  \n",
       "4  0.72  2.8  11.24  77.14  \n",
       "5  0.72  2.8  11.24  77.14  \n",
       "\n",
       "[5 rows x 23 columns]"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "ag = data.groupby('year').mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>do</th>\n",
       "      <th>ph</th>\n",
       "      <th>co</th>\n",
       "      <th>bod</th>\n",
       "      <th>na</th>\n",
       "      <th>tc</th>\n",
       "      <th>npH</th>\n",
       "      <th>ndo</th>\n",
       "      <th>nco</th>\n",
       "      <th>nbdo</th>\n",
       "      <th>nec</th>\n",
       "      <th>nna</th>\n",
       "      <th>wph</th>\n",
       "      <th>wdo</th>\n",
       "      <th>wbdo</th>\n",
       "      <th>wec</th>\n",
       "      <th>wna</th>\n",
       "      <th>wco</th>\n",
       "      <th>wqi</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>year</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2006</th>\n",
       "      <td>6.339856</td>\n",
       "      <td>7.247588</td>\n",
       "      <td>1604.124000</td>\n",
       "      <td>13.338644</td>\n",
       "      <td>1.897361</td>\n",
       "      <td>9694.549451</td>\n",
       "      <td>81.568627</td>\n",
       "      <td>85.294118</td>\n",
       "      <td>40.784314</td>\n",
       "      <td>83.333333</td>\n",
       "      <td>29.411765</td>\n",
       "      <td>94.901961</td>\n",
       "      <td>13.458824</td>\n",
       "      <td>23.967647</td>\n",
       "      <td>19.500000</td>\n",
       "      <td>0.264706</td>\n",
       "      <td>2.657255</td>\n",
       "      <td>11.460392</td>\n",
       "      <td>71.308824</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2007</th>\n",
       "      <td>6.348276</td>\n",
       "      <td>7.221667</td>\n",
       "      <td>1919.794872</td>\n",
       "      <td>8.295763</td>\n",
       "      <td>1.262653</td>\n",
       "      <td>31240.188073</td>\n",
       "      <td>83.333333</td>\n",
       "      <td>87.666667</td>\n",
       "      <td>39.000000</td>\n",
       "      <td>87.666667</td>\n",
       "      <td>45.000000</td>\n",
       "      <td>81.666667</td>\n",
       "      <td>13.750000</td>\n",
       "      <td>24.634333</td>\n",
       "      <td>20.514000</td>\n",
       "      <td>0.405000</td>\n",
       "      <td>2.286667</td>\n",
       "      <td>10.959000</td>\n",
       "      <td>72.549000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008</th>\n",
       "      <td>6.163057</td>\n",
       "      <td>7.105660</td>\n",
       "      <td>1361.647799</td>\n",
       "      <td>5.630449</td>\n",
       "      <td>1.488936</td>\n",
       "      <td>20428.894040</td>\n",
       "      <td>75.974843</td>\n",
       "      <td>85.786164</td>\n",
       "      <td>43.144654</td>\n",
       "      <td>89.182390</td>\n",
       "      <td>50.817610</td>\n",
       "      <td>88.553459</td>\n",
       "      <td>12.535849</td>\n",
       "      <td>24.105912</td>\n",
       "      <td>20.868679</td>\n",
       "      <td>0.457358</td>\n",
       "      <td>2.479497</td>\n",
       "      <td>12.123648</td>\n",
       "      <td>72.570943</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2009</th>\n",
       "      <td>6.310912</td>\n",
       "      <td>7.203425</td>\n",
       "      <td>3192.172944</td>\n",
       "      <td>6.532222</td>\n",
       "      <td>2.485864</td>\n",
       "      <td>5099.593567</td>\n",
       "      <td>79.779006</td>\n",
       "      <td>87.624309</td>\n",
       "      <td>44.972376</td>\n",
       "      <td>89.171271</td>\n",
       "      <td>33.922652</td>\n",
       "      <td>88.950276</td>\n",
       "      <td>13.163536</td>\n",
       "      <td>24.622431</td>\n",
       "      <td>20.866077</td>\n",
       "      <td>0.305304</td>\n",
       "      <td>2.490608</td>\n",
       "      <td>12.637238</td>\n",
       "      <td>74.085193</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010</th>\n",
       "      <td>6.350053</td>\n",
       "      <td>7.201436</td>\n",
       "      <td>1957.287234</td>\n",
       "      <td>7.670934</td>\n",
       "      <td>1.704828</td>\n",
       "      <td>3586.397661</td>\n",
       "      <td>79.574468</td>\n",
       "      <td>90.531915</td>\n",
       "      <td>45.212766</td>\n",
       "      <td>87.021277</td>\n",
       "      <td>47.021277</td>\n",
       "      <td>92.446809</td>\n",
       "      <td>13.129787</td>\n",
       "      <td>25.439468</td>\n",
       "      <td>20.362979</td>\n",
       "      <td>0.423191</td>\n",
       "      <td>2.588511</td>\n",
       "      <td>12.704787</td>\n",
       "      <td>74.648723</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            do        ph           co        bod        na            tc  \\\n",
       "year                                                                       \n",
       "2006  6.339856  7.247588  1604.124000  13.338644  1.897361   9694.549451   \n",
       "2007  6.348276  7.221667  1919.794872   8.295763  1.262653  31240.188073   \n",
       "2008  6.163057  7.105660  1361.647799   5.630449  1.488936  20428.894040   \n",
       "2009  6.310912  7.203425  3192.172944   6.532222  2.485864   5099.593567   \n",
       "2010  6.350053  7.201436  1957.287234   7.670934  1.704828   3586.397661   \n",
       "\n",
       "            npH        ndo        nco       nbdo        nec        nna  \\\n",
       "year                                                                     \n",
       "2006  81.568627  85.294118  40.784314  83.333333  29.411765  94.901961   \n",
       "2007  83.333333  87.666667  39.000000  87.666667  45.000000  81.666667   \n",
       "2008  75.974843  85.786164  43.144654  89.182390  50.817610  88.553459   \n",
       "2009  79.779006  87.624309  44.972376  89.171271  33.922652  88.950276   \n",
       "2010  79.574468  90.531915  45.212766  87.021277  47.021277  92.446809   \n",
       "\n",
       "            wph        wdo       wbdo       wec       wna        wco  \\\n",
       "year                                                                   \n",
       "2006  13.458824  23.967647  19.500000  0.264706  2.657255  11.460392   \n",
       "2007  13.750000  24.634333  20.514000  0.405000  2.286667  10.959000   \n",
       "2008  12.535849  24.105912  20.868679  0.457358  2.479497  12.123648   \n",
       "2009  13.163536  24.622431  20.866077  0.305304  2.490608  12.637238   \n",
       "2010  13.129787  25.439468  20.362979  0.423191  2.588511  12.704787   \n",
       "\n",
       "            wqi  \n",
       "year             \n",
       "2006  71.308824  \n",
       "2007  72.549000  \n",
       "2008  72.570943  \n",
       "2009  74.085193  \n",
       "2010  74.648723  "
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ag.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>year</th>\n",
       "      <th>do</th>\n",
       "      <th>ph</th>\n",
       "      <th>co</th>\n",
       "      <th>bod</th>\n",
       "      <th>na</th>\n",
       "      <th>tc</th>\n",
       "      <th>npH</th>\n",
       "      <th>ndo</th>\n",
       "      <th>nco</th>\n",
       "      <th>nbdo</th>\n",
       "      <th>nec</th>\n",
       "      <th>nna</th>\n",
       "      <th>wph</th>\n",
       "      <th>wdo</th>\n",
       "      <th>wbdo</th>\n",
       "      <th>wec</th>\n",
       "      <th>wna</th>\n",
       "      <th>wco</th>\n",
       "      <th>wqi</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2006</td>\n",
       "      <td>6.339856</td>\n",
       "      <td>7.247588</td>\n",
       "      <td>1604.124000</td>\n",
       "      <td>13.338644</td>\n",
       "      <td>1.897361</td>\n",
       "      <td>9694.549451</td>\n",
       "      <td>81.568627</td>\n",
       "      <td>85.294118</td>\n",
       "      <td>40.784314</td>\n",
       "      <td>83.333333</td>\n",
       "      <td>29.411765</td>\n",
       "      <td>94.901961</td>\n",
       "      <td>13.458824</td>\n",
       "      <td>23.967647</td>\n",
       "      <td>19.500000</td>\n",
       "      <td>0.264706</td>\n",
       "      <td>2.657255</td>\n",
       "      <td>11.460392</td>\n",
       "      <td>71.308824</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2007</td>\n",
       "      <td>6.348276</td>\n",
       "      <td>7.221667</td>\n",
       "      <td>1919.794872</td>\n",
       "      <td>8.295763</td>\n",
       "      <td>1.262653</td>\n",
       "      <td>31240.188073</td>\n",
       "      <td>83.333333</td>\n",
       "      <td>87.666667</td>\n",
       "      <td>39.000000</td>\n",
       "      <td>87.666667</td>\n",
       "      <td>45.000000</td>\n",
       "      <td>81.666667</td>\n",
       "      <td>13.750000</td>\n",
       "      <td>24.634333</td>\n",
       "      <td>20.514000</td>\n",
       "      <td>0.405000</td>\n",
       "      <td>2.286667</td>\n",
       "      <td>10.959000</td>\n",
       "      <td>72.549000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2008</td>\n",
       "      <td>6.163057</td>\n",
       "      <td>7.105660</td>\n",
       "      <td>1361.647799</td>\n",
       "      <td>5.630449</td>\n",
       "      <td>1.488936</td>\n",
       "      <td>20428.894040</td>\n",
       "      <td>75.974843</td>\n",
       "      <td>85.786164</td>\n",
       "      <td>43.144654</td>\n",
       "      <td>89.182390</td>\n",
       "      <td>50.817610</td>\n",
       "      <td>88.553459</td>\n",
       "      <td>12.535849</td>\n",
       "      <td>24.105912</td>\n",
       "      <td>20.868679</td>\n",
       "      <td>0.457358</td>\n",
       "      <td>2.479497</td>\n",
       "      <td>12.123648</td>\n",
       "      <td>72.570943</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2009</td>\n",
       "      <td>6.310912</td>\n",
       "      <td>7.203425</td>\n",
       "      <td>3192.172944</td>\n",
       "      <td>6.532222</td>\n",
       "      <td>2.485864</td>\n",
       "      <td>5099.593567</td>\n",
       "      <td>79.779006</td>\n",
       "      <td>87.624309</td>\n",
       "      <td>44.972376</td>\n",
       "      <td>89.171271</td>\n",
       "      <td>33.922652</td>\n",
       "      <td>88.950276</td>\n",
       "      <td>13.163536</td>\n",
       "      <td>24.622431</td>\n",
       "      <td>20.866077</td>\n",
       "      <td>0.305304</td>\n",
       "      <td>2.490608</td>\n",
       "      <td>12.637238</td>\n",
       "      <td>74.085193</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2010</td>\n",
       "      <td>6.350053</td>\n",
       "      <td>7.201436</td>\n",
       "      <td>1957.287234</td>\n",
       "      <td>7.670934</td>\n",
       "      <td>1.704828</td>\n",
       "      <td>3586.397661</td>\n",
       "      <td>79.574468</td>\n",
       "      <td>90.531915</td>\n",
       "      <td>45.212766</td>\n",
       "      <td>87.021277</td>\n",
       "      <td>47.021277</td>\n",
       "      <td>92.446809</td>\n",
       "      <td>13.129787</td>\n",
       "      <td>25.439468</td>\n",
       "      <td>20.362979</td>\n",
       "      <td>0.423191</td>\n",
       "      <td>2.588511</td>\n",
       "      <td>12.704787</td>\n",
       "      <td>74.648723</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   year        do        ph           co        bod        na            tc  \\\n",
       "0  2006  6.339856  7.247588  1604.124000  13.338644  1.897361   9694.549451   \n",
       "1  2007  6.348276  7.221667  1919.794872   8.295763  1.262653  31240.188073   \n",
       "2  2008  6.163057  7.105660  1361.647799   5.630449  1.488936  20428.894040   \n",
       "3  2009  6.310912  7.203425  3192.172944   6.532222  2.485864   5099.593567   \n",
       "4  2010  6.350053  7.201436  1957.287234   7.670934  1.704828   3586.397661   \n",
       "\n",
       "         npH        ndo        nco       nbdo        nec        nna  \\\n",
       "0  81.568627  85.294118  40.784314  83.333333  29.411765  94.901961   \n",
       "1  83.333333  87.666667  39.000000  87.666667  45.000000  81.666667   \n",
       "2  75.974843  85.786164  43.144654  89.182390  50.817610  88.553459   \n",
       "3  79.779006  87.624309  44.972376  89.171271  33.922652  88.950276   \n",
       "4  79.574468  90.531915  45.212766  87.021277  47.021277  92.446809   \n",
       "\n",
       "         wph        wdo       wbdo       wec       wna        wco        wqi  \n",
       "0  13.458824  23.967647  19.500000  0.264706  2.657255  11.460392  71.308824  \n",
       "1  13.750000  24.634333  20.514000  0.405000  2.286667  10.959000  72.549000  \n",
       "2  12.535849  24.105912  20.868679  0.457358  2.479497  12.123648  72.570943  \n",
       "3  13.163536  24.622431  20.866077  0.305304  2.490608  12.637238  74.085193  \n",
       "4  13.129787  25.439468  20.362979  0.423191  2.588511  12.704787  74.648723  "
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = ag.reset_index(level = 0, inplace = False)\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "year = data['year'].values\n",
    "AQI = data['wqi'].values\n",
    "data['wqi'] = pd.to_numeric(data['wqi'], errors = 'coerce')\n",
    "data['wqi'] = pd.to_numeric(data['wqi'], errors = 'coerce')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "plt.rcParams['figure.figsize'] = (20.0, 10.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "from mpl_toolkits.mplot3d import Axes3D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "ax = Axes3D(fig)\n",
    "ax.scatter(year, AQI, color = 'red')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>year</th>\n",
       "      <th>do</th>\n",
       "      <th>ph</th>\n",
       "      <th>co</th>\n",
       "      <th>bod</th>\n",
       "      <th>na</th>\n",
       "      <th>tc</th>\n",
       "      <th>npH</th>\n",
       "      <th>ndo</th>\n",
       "      <th>nco</th>\n",
       "      <th>nbdo</th>\n",
       "      <th>nec</th>\n",
       "      <th>nna</th>\n",
       "      <th>wph</th>\n",
       "      <th>wdo</th>\n",
       "      <th>wbdo</th>\n",
       "      <th>wec</th>\n",
       "      <th>wna</th>\n",
       "      <th>wco</th>\n",
       "      <th>wqi</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2006</td>\n",
       "      <td>6.339856</td>\n",
       "      <td>7.247588</td>\n",
       "      <td>1604.124000</td>\n",
       "      <td>13.338644</td>\n",
       "      <td>1.897361</td>\n",
       "      <td>9.694549e+03</td>\n",
       "      <td>81.568627</td>\n",
       "      <td>85.294118</td>\n",
       "      <td>40.784314</td>\n",
       "      <td>83.333333</td>\n",
       "      <td>29.411765</td>\n",
       "      <td>94.901961</td>\n",
       "      <td>13.458824</td>\n",
       "      <td>23.967647</td>\n",
       "      <td>19.500000</td>\n",
       "      <td>0.264706</td>\n",
       "      <td>2.657255</td>\n",
       "      <td>11.460392</td>\n",
       "      <td>71.308824</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2007</td>\n",
       "      <td>6.348276</td>\n",
       "      <td>7.221667</td>\n",
       "      <td>1919.794872</td>\n",
       "      <td>8.295763</td>\n",
       "      <td>1.262653</td>\n",
       "      <td>3.124019e+04</td>\n",
       "      <td>83.333333</td>\n",
       "      <td>87.666667</td>\n",
       "      <td>39.000000</td>\n",
       "      <td>87.666667</td>\n",
       "      <td>45.000000</td>\n",
       "      <td>81.666667</td>\n",
       "      <td>13.750000</td>\n",
       "      <td>24.634333</td>\n",
       "      <td>20.514000</td>\n",
       "      <td>0.405000</td>\n",
       "      <td>2.286667</td>\n",
       "      <td>10.959000</td>\n",
       "      <td>72.549000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2008</td>\n",
       "      <td>6.163057</td>\n",
       "      <td>7.105660</td>\n",
       "      <td>1361.647799</td>\n",
       "      <td>5.630449</td>\n",
       "      <td>1.488936</td>\n",
       "      <td>2.042889e+04</td>\n",
       "      <td>75.974843</td>\n",
       "      <td>85.786164</td>\n",
       "      <td>43.144654</td>\n",
       "      <td>89.182390</td>\n",
       "      <td>50.817610</td>\n",
       "      <td>88.553459</td>\n",
       "      <td>12.535849</td>\n",
       "      <td>24.105912</td>\n",
       "      <td>20.868679</td>\n",
       "      <td>0.457358</td>\n",
       "      <td>2.479497</td>\n",
       "      <td>12.123648</td>\n",
       "      <td>72.570943</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2009</td>\n",
       "      <td>6.310912</td>\n",
       "      <td>7.203425</td>\n",
       "      <td>3192.172944</td>\n",
       "      <td>6.532222</td>\n",
       "      <td>2.485864</td>\n",
       "      <td>5.099594e+03</td>\n",
       "      <td>79.779006</td>\n",
       "      <td>87.624309</td>\n",
       "      <td>44.972376</td>\n",
       "      <td>89.171271</td>\n",
       "      <td>33.922652</td>\n",
       "      <td>88.950276</td>\n",
       "      <td>13.163536</td>\n",
       "      <td>24.622431</td>\n",
       "      <td>20.866077</td>\n",
       "      <td>0.305304</td>\n",
       "      <td>2.490608</td>\n",
       "      <td>12.637238</td>\n",
       "      <td>74.085193</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2010</td>\n",
       "      <td>6.350053</td>\n",
       "      <td>7.201436</td>\n",
       "      <td>1957.287234</td>\n",
       "      <td>7.670934</td>\n",
       "      <td>1.704828</td>\n",
       "      <td>3.586398e+03</td>\n",
       "      <td>79.574468</td>\n",
       "      <td>90.531915</td>\n",
       "      <td>45.212766</td>\n",
       "      <td>87.021277</td>\n",
       "      <td>47.021277</td>\n",
       "      <td>92.446809</td>\n",
       "      <td>13.129787</td>\n",
       "      <td>25.439468</td>\n",
       "      <td>20.362979</td>\n",
       "      <td>0.423191</td>\n",
       "      <td>2.588511</td>\n",
       "      <td>12.704787</td>\n",
       "      <td>74.648723</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2011</td>\n",
       "      <td>6.227706</td>\n",
       "      <td>7.297403</td>\n",
       "      <td>2351.420346</td>\n",
       "      <td>6.464574</td>\n",
       "      <td>1.530588</td>\n",
       "      <td>2.734490e+03</td>\n",
       "      <td>88.138528</td>\n",
       "      <td>88.225108</td>\n",
       "      <td>47.792208</td>\n",
       "      <td>86.320346</td>\n",
       "      <td>46.406926</td>\n",
       "      <td>80.952381</td>\n",
       "      <td>14.542857</td>\n",
       "      <td>24.791255</td>\n",
       "      <td>20.198961</td>\n",
       "      <td>0.417662</td>\n",
       "      <td>2.266667</td>\n",
       "      <td>13.429610</td>\n",
       "      <td>75.647013</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2012</td>\n",
       "      <td>6.632534</td>\n",
       "      <td>7.298973</td>\n",
       "      <td>1401.078767</td>\n",
       "      <td>5.468621</td>\n",
       "      <td>1.564413</td>\n",
       "      <td>1.071750e+06</td>\n",
       "      <td>92.260274</td>\n",
       "      <td>90.684932</td>\n",
       "      <td>50.205479</td>\n",
       "      <td>91.027397</td>\n",
       "      <td>54.109589</td>\n",
       "      <td>84.589041</td>\n",
       "      <td>15.222945</td>\n",
       "      <td>25.482466</td>\n",
       "      <td>21.300411</td>\n",
       "      <td>0.486986</td>\n",
       "      <td>2.368493</td>\n",
       "      <td>14.107740</td>\n",
       "      <td>78.969041</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2013</td>\n",
       "      <td>6.314741</td>\n",
       "      <td>7.187160</td>\n",
       "      <td>1564.531496</td>\n",
       "      <td>5.197638</td>\n",
       "      <td>1.728101</td>\n",
       "      <td>6.688336e+05</td>\n",
       "      <td>85.977011</td>\n",
       "      <td>86.436782</td>\n",
       "      <td>45.057471</td>\n",
       "      <td>88.199234</td>\n",
       "      <td>51.877395</td>\n",
       "      <td>98.850575</td>\n",
       "      <td>14.186207</td>\n",
       "      <td>24.288736</td>\n",
       "      <td>20.638621</td>\n",
       "      <td>0.466897</td>\n",
       "      <td>2.767816</td>\n",
       "      <td>12.661149</td>\n",
       "      <td>75.009425</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2014</td>\n",
       "      <td>6.251883</td>\n",
       "      <td>7.217284</td>\n",
       "      <td>1819.533333</td>\n",
       "      <td>5.288655</td>\n",
       "      <td>1.528807</td>\n",
       "      <td>2.190088e+06</td>\n",
       "      <td>88.852459</td>\n",
       "      <td>87.049180</td>\n",
       "      <td>48.442623</td>\n",
       "      <td>89.098361</td>\n",
       "      <td>51.639344</td>\n",
       "      <td>99.508197</td>\n",
       "      <td>14.660656</td>\n",
       "      <td>24.460820</td>\n",
       "      <td>20.849016</td>\n",
       "      <td>0.464754</td>\n",
       "      <td>2.786230</td>\n",
       "      <td>13.612377</td>\n",
       "      <td>76.833852</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   year        do        ph           co        bod        na            tc  \\\n",
       "0  2006  6.339856  7.247588  1604.124000  13.338644  1.897361  9.694549e+03   \n",
       "1  2007  6.348276  7.221667  1919.794872   8.295763  1.262653  3.124019e+04   \n",
       "2  2008  6.163057  7.105660  1361.647799   5.630449  1.488936  2.042889e+04   \n",
       "3  2009  6.310912  7.203425  3192.172944   6.532222  2.485864  5.099594e+03   \n",
       "4  2010  6.350053  7.201436  1957.287234   7.670934  1.704828  3.586398e+03   \n",
       "5  2011  6.227706  7.297403  2351.420346   6.464574  1.530588  2.734490e+03   \n",
       "6  2012  6.632534  7.298973  1401.078767   5.468621  1.564413  1.071750e+06   \n",
       "7  2013  6.314741  7.187160  1564.531496   5.197638  1.728101  6.688336e+05   \n",
       "8  2014  6.251883  7.217284  1819.533333   5.288655  1.528807  2.190088e+06   \n",
       "\n",
       "         npH        ndo        nco       nbdo        nec        nna  \\\n",
       "0  81.568627  85.294118  40.784314  83.333333  29.411765  94.901961   \n",
       "1  83.333333  87.666667  39.000000  87.666667  45.000000  81.666667   \n",
       "2  75.974843  85.786164  43.144654  89.182390  50.817610  88.553459   \n",
       "3  79.779006  87.624309  44.972376  89.171271  33.922652  88.950276   \n",
       "4  79.574468  90.531915  45.212766  87.021277  47.021277  92.446809   \n",
       "5  88.138528  88.225108  47.792208  86.320346  46.406926  80.952381   \n",
       "6  92.260274  90.684932  50.205479  91.027397  54.109589  84.589041   \n",
       "7  85.977011  86.436782  45.057471  88.199234  51.877395  98.850575   \n",
       "8  88.852459  87.049180  48.442623  89.098361  51.639344  99.508197   \n",
       "\n",
       "         wph        wdo       wbdo       wec       wna        wco        wqi  \n",
       "0  13.458824  23.967647  19.500000  0.264706  2.657255  11.460392  71.308824  \n",
       "1  13.750000  24.634333  20.514000  0.405000  2.286667  10.959000  72.549000  \n",
       "2  12.535849  24.105912  20.868679  0.457358  2.479497  12.123648  72.570943  \n",
       "3  13.163536  24.622431  20.866077  0.305304  2.490608  12.637238  74.085193  \n",
       "4  13.129787  25.439468  20.362979  0.423191  2.588511  12.704787  74.648723  \n",
       "5  14.542857  24.791255  20.198961  0.417662  2.266667  13.429610  75.647013  \n",
       "6  15.222945  25.482466  21.300411  0.486986  2.368493  14.107740  78.969041  \n",
       "7  14.186207  24.288736  20.638621  0.466897  2.767816  12.661149  75.009425  \n",
       "8  14.660656  24.460820  20.849016  0.464754  2.786230  13.612377  76.833852  "
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>year</th>\n",
       "      <th>do</th>\n",
       "      <th>ph</th>\n",
       "      <th>co</th>\n",
       "      <th>bod</th>\n",
       "      <th>na</th>\n",
       "      <th>tc</th>\n",
       "      <th>npH</th>\n",
       "      <th>ndo</th>\n",
       "      <th>nco</th>\n",
       "      <th>nbdo</th>\n",
       "      <th>nec</th>\n",
       "      <th>nna</th>\n",
       "      <th>wph</th>\n",
       "      <th>wdo</th>\n",
       "      <th>wbdo</th>\n",
       "      <th>wec</th>\n",
       "      <th>wna</th>\n",
       "      <th>wco</th>\n",
       "      <th>wqi</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2006</td>\n",
       "      <td>6.339856</td>\n",
       "      <td>7.247588</td>\n",
       "      <td>1604.124000</td>\n",
       "      <td>13.338644</td>\n",
       "      <td>1.897361</td>\n",
       "      <td>9694.549451</td>\n",
       "      <td>81.568627</td>\n",
       "      <td>85.294118</td>\n",
       "      <td>40.784314</td>\n",
       "      <td>83.333333</td>\n",
       "      <td>29.411765</td>\n",
       "      <td>94.901961</td>\n",
       "      <td>13.458824</td>\n",
       "      <td>23.967647</td>\n",
       "      <td>19.500000</td>\n",
       "      <td>0.264706</td>\n",
       "      <td>2.657255</td>\n",
       "      <td>11.460392</td>\n",
       "      <td>71.308824</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2007</td>\n",
       "      <td>6.348276</td>\n",
       "      <td>7.221667</td>\n",
       "      <td>1919.794872</td>\n",
       "      <td>8.295763</td>\n",
       "      <td>1.262653</td>\n",
       "      <td>31240.188073</td>\n",
       "      <td>83.333333</td>\n",
       "      <td>87.666667</td>\n",
       "      <td>39.000000</td>\n",
       "      <td>87.666667</td>\n",
       "      <td>45.000000</td>\n",
       "      <td>81.666667</td>\n",
       "      <td>13.750000</td>\n",
       "      <td>24.634333</td>\n",
       "      <td>20.514000</td>\n",
       "      <td>0.405000</td>\n",
       "      <td>2.286667</td>\n",
       "      <td>10.959000</td>\n",
       "      <td>72.549000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2008</td>\n",
       "      <td>6.163057</td>\n",
       "      <td>7.105660</td>\n",
       "      <td>1361.647799</td>\n",
       "      <td>5.630449</td>\n",
       "      <td>1.488936</td>\n",
       "      <td>20428.894040</td>\n",
       "      <td>75.974843</td>\n",
       "      <td>85.786164</td>\n",
       "      <td>43.144654</td>\n",
       "      <td>89.182390</td>\n",
       "      <td>50.817610</td>\n",
       "      <td>88.553459</td>\n",
       "      <td>12.535849</td>\n",
       "      <td>24.105912</td>\n",
       "      <td>20.868679</td>\n",
       "      <td>0.457358</td>\n",
       "      <td>2.479497</td>\n",
       "      <td>12.123648</td>\n",
       "      <td>72.570943</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2009</td>\n",
       "      <td>6.310912</td>\n",
       "      <td>7.203425</td>\n",
       "      <td>3192.172944</td>\n",
       "      <td>6.532222</td>\n",
       "      <td>2.485864</td>\n",
       "      <td>5099.593567</td>\n",
       "      <td>79.779006</td>\n",
       "      <td>87.624309</td>\n",
       "      <td>44.972376</td>\n",
       "      <td>89.171271</td>\n",
       "      <td>33.922652</td>\n",
       "      <td>88.950276</td>\n",
       "      <td>13.163536</td>\n",
       "      <td>24.622431</td>\n",
       "      <td>20.866077</td>\n",
       "      <td>0.305304</td>\n",
       "      <td>2.490608</td>\n",
       "      <td>12.637238</td>\n",
       "      <td>74.085193</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2010</td>\n",
       "      <td>6.350053</td>\n",
       "      <td>7.201436</td>\n",
       "      <td>1957.287234</td>\n",
       "      <td>7.670934</td>\n",
       "      <td>1.704828</td>\n",
       "      <td>3586.397661</td>\n",
       "      <td>79.574468</td>\n",
       "      <td>90.531915</td>\n",
       "      <td>45.212766</td>\n",
       "      <td>87.021277</td>\n",
       "      <td>47.021277</td>\n",
       "      <td>92.446809</td>\n",
       "      <td>13.129787</td>\n",
       "      <td>25.439468</td>\n",
       "      <td>20.362979</td>\n",
       "      <td>0.423191</td>\n",
       "      <td>2.588511</td>\n",
       "      <td>12.704787</td>\n",
       "      <td>74.648723</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   year        do        ph           co        bod        na            tc  \\\n",
       "0  2006  6.339856  7.247588  1604.124000  13.338644  1.897361   9694.549451   \n",
       "1  2007  6.348276  7.221667  1919.794872   8.295763  1.262653  31240.188073   \n",
       "2  2008  6.163057  7.105660  1361.647799   5.630449  1.488936  20428.894040   \n",
       "3  2009  6.310912  7.203425  3192.172944   6.532222  2.485864   5099.593567   \n",
       "4  2010  6.350053  7.201436  1957.287234   7.670934  1.704828   3586.397661   \n",
       "\n",
       "         npH        ndo        nco       nbdo        nec        nna  \\\n",
       "0  81.568627  85.294118  40.784314  83.333333  29.411765  94.901961   \n",
       "1  83.333333  87.666667  39.000000  87.666667  45.000000  81.666667   \n",
       "2  75.974843  85.786164  43.144654  89.182390  50.817610  88.553459   \n",
       "3  79.779006  87.624309  44.972376  89.171271  33.922652  88.950276   \n",
       "4  79.574468  90.531915  45.212766  87.021277  47.021277  92.446809   \n",
       "\n",
       "         wph        wdo       wbdo       wec       wna        wco        wqi  \n",
       "0  13.458824  23.967647  19.500000  0.264706  2.657255  11.460392  71.308824  \n",
       "1  13.750000  24.634333  20.514000  0.405000  2.286667  10.959000  72.549000  \n",
       "2  12.535849  24.105912  20.868679  0.457358  2.479497  12.123648  72.570943  \n",
       "3  13.163536  24.622431  20.866077  0.305304  2.490608  12.637238  74.085193  \n",
       "4  13.129787  25.439468  20.362979  0.423191  2.588511  12.704787  74.648723  "
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = data[np.isfinite(data['wqi'])]\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAE81JREFUeJzt3XuQnXddx/H3l20ybLi4kG6VpNVQgRWG1g1dakG5tCGGIIZQR0xGpIBDkBG1OCwSgQ78wQANVy8jBEH/EELNuInKwGw7iDpouWwukALdYhyC3WC6HV06TBYI6dc/zrPN6bqbPc/uuTx58n7NnMk5v3Oe53y6u/3ss7/nciIzkSRd+B7R6wCSpPaw0CWpJix0SaoJC12SasJCl6SasNAlqSYsdEmqCQtdkmrCQpekmrikm2926aWX5oYNG7r5lpJ0wTt06ND9mTm41Ou6WugbNmxgYmKim28pSRe8iDjRyuuccpGkmrDQJakmLHRJqgkLXZJqYslCj4ihiDjadHsgIm6OiJ+PiDsj4lhE/GNEPLYbgSVJC1uy0DNzMjOHM3MYuAY4DRwA/hJ4c2ZeVTwe7WhSSdJ5lT1scRNwPDNPRMQQ8K/F+B3AOPC2doaTVC0Hj0yxZ3ySkzOzrBvoZ3TLENs3ru91LBXKzqHvAPYV9+8CthX3fx24ol2hJFXPwSNT7B47xtTMLAlMzcyye+wYB49M9TqaCi0XekSsplHg+4uhVwO/GxGHgMcAP1pkuV0RMRERE9PT0yvNK6lH9oxPMnvm7MPGZs+cZc/4ZI8Sab4yW+hbgcOZeQogM+/OzF/OzGtobLUfX2ihzNybmSOZOTI4uOSZq5Iq6uTMbKlxdV+ZQt/JuekWIuKy4t9HAG8FPtzeaJKqZN1Af6lxdV9LhR4Ra4DNwFjT8M6IuAe4GzgJ/FX740mqitEtQ/Sv6nvYWP+qPka3DPUokeZr6SiXzDwNrJ039iHgQ50IJal65o5m8SiX6urq1RYlXdi2b1xvgVeYp/5LUk1Y6JJUExa6JNWEhS5JNWGhS1JNWOiSVBMWuiTVhIUuSTVhoUtSTVjoklQTFrok1YSFLkk1YaFLUk1Y6JJUExa6JNWEhS5JNbFkoUfEUEQcbbo9EBE3R8RwRHyxGJuIiGu7EViStLAlP7EoMyeBYYCI6AOmgAPAR4F3ZOZnI+JFwK3A8zsXVZJ0PmWnXDYBxzPzBJDAY4vxn6DxQdGSpB4p+5miO4B9xf2bgfGIeC+NXwzPbmcwSVI5LW+hR8RqYBuwvxh6HfCGzLwCeAPwsUWW21XMsU9MT0+vNK8kaRFlply2Aocz81Tx+CZgrLi/H1hwp2hm7s3MkcwcGRwcXH5SSdJ5lSn0nZybboHGnPnzivs3AN9qVyhJUnktzaFHxBpgM/DapuHXAB+KiEuAHwC72h9PktSqlgo9M08Da+eNfQG4phOhJEnleaaoJNWEhS5JNWGhS1JNWOiSVBMWuiTVhIUuSTVhoUtSTVjoklQTFrok1YSFLkk1YaFLUk1Y6JJUExa6JNWEhS5JNWGhS1JNWOiSVBMWuiTVxJKfWBQRQ8BtTUNXArcAzwKGirEBYCYzh9ueUJLUkiULPTMngWGAiOgDpoADmfnBuddExPuA73UqpCRpaS19pmiTTcDxzDwxNxARAbwMuKGdwSRJ5ZSdQ98B7Js39hzgVGZ+a6EFImJXRExExMT09PRyMkqSWtDyFnpErAa2AbvnPbWT/1/yD8nMvcBegJGRkVxGRkm6IB08MsWe8UlOzsyybqCf0S1DbN+4vmPvV2bKZStwODNPzQ1ExCXAjcA17Q4mSReyg0em2D12jNkzZwGYmpll99gxgI6Vepkpl4W2xF8A3J2Z97YvkiRd+PaMTz5U5nNmz5xlz/hkx96zpUKPiDXAZmBs3lMLzalL0kXv5MxsqfF2aGnKJTNPA2sXGH9luwNJUh2sG+hnaoHyXjfQ37H39ExRSeqA0S1D9K/qe9hY/6o+RrcMLbLEypU9Dl2S1IK5HZ9VPcpFklTC9o3rO1rg8znlIkk1YaFLUk1Y6JJUExa6JNWEhS5JNWGhS1JNWOiSVBMWuiTVhIUuSTVhoUtSTVjoklQTFrok1YSFLkk1sWShR8RQRBxtuj0QETcXz/1eRExGxNcj4tbOx5UkLWbJy+dm5iQwDBARfcAUcCAirgdeAlydmT+MiMs6mlSSdF5lp1w2Accz8wTwOuDdmflDgMy8r93hJEmtK1vozR8K/RTgORHxpYj4l4h4ZnujSZLKaLnQI2I1sA3YXwxdAjwOuA4YBf42ImKB5XZFxERETExPT7chsiRpIWW20LcChzPzVPH4XmAsG74MPAhcOn+hzNybmSOZOTI4OLjyxJKkBZUp9J2cm24BOAjcABARTwFWA/e3L5okqYyWCj0i1gCbgbGm4Y8DV0bEXcCngJsyM9sfUZLUiiUPWwTIzNPA2nljPwJe3olQkqTyPFNUkmqipS10Sd118MgUe8YnOTkzy7qBfka3DLF94/pex1LFWehSxRw8MsXusWPMnjkLwNTMLLvHjgFY6jovp1ykitkzPvlQmc+ZPXOWPeOTPUqkC4WFLlXMyZnZUuPSHAtdqph1A/2lxqU5FrpUMaNbhuhf1fewsf5VfYxuGepRIl0o3CkqVczcjk+PclFZFrpUQds3rrfAVZpTLpJUExa6JNWEhS5JNWGhS1JNWOiSVBMWuiTVhIUuSTVhoUtSTSx5YlFEDAG3NQ1dCdwCDACvAaaL8T/OzM+0PaEkLcHrxzcsWeiZOQkMA0REHzAFHABeBXwgM9/b0YSSdB5eP/6cslMum4DjmXmiE2EkqSyvH39O2ULfAexrevz6iPhaRHw8Ih7XxlyS1BKvH39Oy4UeEauBbcD+YugvgJ+lMR3zXeB9iyy3KyImImJienp6oZdI0rJ5/fhzymyhbwUOZ+YpgMw8lZlnM/NB4KPAtQstlJl7M3MkM0cGBwdXnliSmnj9+HPKXD53J03TLRHxhMz8bvHwpcBd7QwmSa3w+vHntFToEbEG2Ay8tmn41ogYBhL49rznJKlrvH58Q0uFnpmngbXzxn6rI4kkScvimaKSVBN+BJ0uap5hqDqx0HXR8gxD1Y1TLrpoeYah6sZC10XLMwxVNxa6LlqeYai6sdB10fIMQ9WNO0V10fIMQ9WNha6LmmcYqk6ccpGkmrDQJakmLHRJqgkLXZJqwkKXpJqw0CWpJjxsUV3hVQ2lzrPQ1XFe1VDqjiWnXCJiKCKONt0eiIibm55/Y0RkRFza2ai6UHlVQ6k7ltxCz8xJYBggIvqAKeBA8fgKGp81+p0OZtQFzqsaSt1RdqfoJuB4Zp4oHn8AeBOND4qWFuRVDaXuKFvoO4B9ABGxDZjKzK+eb4GI2BURExExMT09vcyYupB5VUOpO1ou9IhYDWwD9kfEGuAtwC1LLZeZezNzJDNHBgcHl59UF6ztG9fzrhuvYv1APwGsH+jnXTde5Q5Rqc3KHOWyFTicmaci4irgicBXIwLgcuBwRFybmf/dgZy6wHlVQ6nzyhT6Torplsw8Blw290REfBsYycz725pOktSylqZciimWzcBYZ+NIkparpS30zDwNrD3P8xvaFUiStDxey0WSasJCl6SasNAlqSYsdEmqCQtdkmrCQpekmrDQJakmLHRJqgkLXZJqwkKXpJqw0CWpJix0SaoJC12SasJCl6SasNAlqSYsdEmqiSU/4CIihoDbmoaupPHh0GuBlwAPAvcBr8zMk50IKUla2pKFnpmTwDBARPQBU8AB4H8z823F+O/TKPnf6VxUSdL5lPmQaIBNwPHMPDFv/FFAtieSJGk5yhb6DmDf3IOIeCfwCuB7wPVtzCVJKqnlnaIRsRrYBuyfG8vMt2TmFcAngNcvstyuiJiIiInp6emV5pUkLaLMUS5bgcOZeWqB5z4J/NpCC2Xm3swcycyRwcHB5WSUJLWgTKHv5OHTLU9uem4bcHe7QkmSymtpDj0i1gCbgdc2Db+7OKTxQeAEHuEiST3VUqFn5mkax503jy04xSJJ6g3PFJWkmrDQJakmLHRJqomyJxap4g4emWLP+CQnZ2ZZN9DP6JYhtm9c3+tYkrrAQl+mKhbnwSNT7B47xuyZswBMzcyye+wYQM+zSeo8p1yWYa44p2ZmSc4V58EjUz3NtWd88qEynzN75ix7xid7lEhSN1noy1DV4jw5M1tqXFK9WOjLUNXiXDfQX2pcUr1Y6MtQ1eIc3TJE/6q+h431r+pjdMtQjxJJ6iYLfRmqWpzbN67nXTdexfqBfgJYP9DPu268yh2i0kXCo1yWYa4gq3aUCzSyVSGHpO6z0JfJ4pRUNU65SFJNWOiSVBMWuiTVhIUuSTVhoUtSTSx5lEvxMXO3NQ1dCdwCrAd+FfgRcBx4VWbOdCKkJGlpS26hZ+ZkZg5n5jBwDXAaOADcATw9M68G7gF2dzSpJOm8yk65bAKOZ+aJzLw9M39cjH8RuLy90SRJZZQt9B3AvgXGXw18duVxJEnL1XKhR8RqYBuwf974W4AfA59YZLldETERERPT09MrySpJOo8yW+hbgcOZeWpuICJuAl4M/GZm5kILZebezBzJzJHBwcGVpZUkLarMtVx20jTdEhEvBP4IeF5mnm53MElSOS1toUfEGmAzMNY0/GfAY4A7IuJoRHy4A/kkSS1qaQu92AJfO2/sSR1JJElaFs8UlaSasNAlqSYsdEmqCQtdkmrCQpekmrDQJakmLHRJqgkLXZJqwkKXpJqw0CWpJspcnKtnDh6ZYs/4JCdnZlk30M/oliG2b1zf61iSVCmVL/SDR6bYPXaM2TNnAZiamWX32DEAS12SmlR+ymXP+ORDZT5n9sxZ9oxP9iiRJFVT5Qv95MxsqXFJulhVvtDXDfSXGpeki1XlC310yxD9q/oeNta/qo/RLUM9SiRJ1VT5naJzOz49ykWSzm/JQo+IIeC2pqErgVuAKeDtwFOBazNzohMBoVHqFrgknd+ShZ6Zk8AwQET00SjyA8Aa4EbgI50MKElqTdkpl03A8cw8MTcQEe1NJElalrI7RXcA+zoRRJK0Mi0XekSsBrYB+8u8QUTsioiJiJiYnp4um0+S1KIyW+hbgcOZearMG2Tm3swcycyRwcHBcukkSS0rM4e+kxVOtxw6dOj+iDix9CsXdSlw/0oydEAVM4G5yjJXOeYqZ6W5fqaVF0VmLv2iiDXAfwFXZub3irGXAn8KDAIzwNHM3LLsuC2IiInMHOnke5RVxUxgrrLMVY65yulWrpa20DPzNLB23tgBGocvSpIqoPKn/kuSWnOhFfreXgdYQBUzgbnKMlc55iqnK7lamkOXJFXfhbaFLklaRE8LPSKuiIjPR8Q3I+LrEfEHxfjjI+KOiPhW8e/jivGIiD+JiP+IiK9FxDOa1vXTEXF7sa5vRMSGXueKiOsj4mjT7QcRsb3XuYrnbi3W8c3iNcu+hkObc70nIu4qbr/RxUw/FxF3RsQPI+KN89b1woiYLPK+ebmZOpDr4xFxX0TctZJM7cy12HoqkOuREfHliPhqsZ53VCFX0/r6IuJIRHx6JbnIzJ7dgCcAzyjuPwa4B3gacCvw5mL8zcB7ivsvAj4LBHAd8KWmdf0zsLm4/2hgTRVyNa3z8cD/VCEX8Gzg34C+4nYn8PwK5PoV4A4aR189CpgAHtulTJcBzwTeCbyxaT19wHEaVxldDXwVeFoXv1YL5iqeey7wDOCuHvy/uNjXa8H1VCBXAI8u7q8CvgRc1+tcTev7Q+CTwKdX9H1c6Q9CO2/A3wObgUngCU1fuMni/keAnU2vnyyefxrwharlmreOXcAnqpALeBZwCOincdXMCeCpFcg1Cry1afxjwMu6kanpdW+fVwTPAsabHu8Gdnfra7VYrqbxDbSh0Nuda/56qpSr+Jk/DPxCFXIBlwOfA25ghYVemTn0aEyRbKTxm/MnM/O7AMW/lxUvW0/jBKc59xZjTwFmImKs+LNlTzQu9dvrXM3aemGzleTKzDuBzwPfLW7jmfnNXueisfW7NSLWRMSlwPXAFV3KtJhWvre9yNUx7co1bz09z1VMaxwF7gPuyMxK5AI+CLwJeHClWSpR6BHxaODvgJsz84HzvXSBsaTxJ/pzgDfS+LPmSuCVFcg1t54nAFcB4yvN1I5cEfEkGh9McjmNcrohIp7b61yZeTvwGeDfafzyuxP4cZcyLbqKBcZWfGhYG3J1RLtytfu/rx3ry8yzmTlM4+f+2oh4eq9zRcSLgfsy89BKs0AFCj0iVtH4gnwiM8eK4VNFCc6V4X3F+L08fIvtcuBkMX4kM/8zM38MHKQxt9jrXHNeBhzIzDMrydTGXC8FvpiZ38/M79OYz76uArnIzHdm5nBmbqZRpt/qUqbFLPW97VWutmtXrkXW0/NcczJzhsY+txdWINcvAtsi4tvAp2hsXP3NcjP1+iiXoDFP+s3MfH/TU/8A3FTcv4nG/NTc+Cui4Trge8WfNV8BHhcRc5dzvAH4RgVyzVnxhc3anOs7wPMi4pLih/J5wLKnXNqVq/iTeG2xzquBq4Hbu5RpMV8BnhwRT4zGJaR3FOtYljbmaqt25TrPenqdazAiBor7/cALgLt7nSszd2fm5Zm5gcbP1j9l5suXm6utO1KWsSPhl2j8+fo14GhxexGN68Z8jsbW2eeAxxevD+DPaRx1cAwYaVrX5mI9x4C/BlZXJNcGGh/b94iqfL1oHLnxERol/g3g/RXJ9cgizzeALwLDXcz0UzS2xh+gcbG5eymOsCmWu6fI+5Yuf63Ol2sfjX0gZ4rx3+51rsXWU4FcVwNHivXcBdxSle9j0zqfzwp3inqmqCTVRM/n0CVJ7WGhS1JNWOiSVBMWuiTVhIUuSTVhoUtSTVjoklQTFrok1cT/AcH1PZAbqJuXAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "cols = ['year']\n",
    "y = data['wqi']\n",
    "x = data[cols]\n",
    "\n",
    "plt.scatter(x, y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>index</th>\n",
       "      <th>year</th>\n",
       "      <th>do</th>\n",
       "      <th>ph</th>\n",
       "      <th>co</th>\n",
       "      <th>bod</th>\n",
       "      <th>na</th>\n",
       "      <th>tc</th>\n",
       "      <th>npH</th>\n",
       "      <th>ndo</th>\n",
       "      <th>...</th>\n",
       "      <th>nbdo</th>\n",
       "      <th>nec</th>\n",
       "      <th>nna</th>\n",
       "      <th>wph</th>\n",
       "      <th>wdo</th>\n",
       "      <th>wbdo</th>\n",
       "      <th>wec</th>\n",
       "      <th>wna</th>\n",
       "      <th>wco</th>\n",
       "      <th>wqi</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>2006</td>\n",
       "      <td>6.339856</td>\n",
       "      <td>7.247588</td>\n",
       "      <td>1604.124000</td>\n",
       "      <td>13.338644</td>\n",
       "      <td>1.897361</td>\n",
       "      <td>9.694549e+03</td>\n",
       "      <td>81.568627</td>\n",
       "      <td>85.294118</td>\n",
       "      <td>...</td>\n",
       "      <td>83.333333</td>\n",
       "      <td>29.411765</td>\n",
       "      <td>94.901961</td>\n",
       "      <td>13.458824</td>\n",
       "      <td>23.967647</td>\n",
       "      <td>19.500000</td>\n",
       "      <td>0.264706</td>\n",
       "      <td>2.657255</td>\n",
       "      <td>11.460392</td>\n",
       "      <td>71.308824</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>2007</td>\n",
       "      <td>6.348276</td>\n",
       "      <td>7.221667</td>\n",
       "      <td>1919.794872</td>\n",
       "      <td>8.295763</td>\n",
       "      <td>1.262653</td>\n",
       "      <td>3.124019e+04</td>\n",
       "      <td>83.333333</td>\n",
       "      <td>87.666667</td>\n",
       "      <td>...</td>\n",
       "      <td>87.666667</td>\n",
       "      <td>45.000000</td>\n",
       "      <td>81.666667</td>\n",
       "      <td>13.750000</td>\n",
       "      <td>24.634333</td>\n",
       "      <td>20.514000</td>\n",
       "      <td>0.405000</td>\n",
       "      <td>2.286667</td>\n",
       "      <td>10.959000</td>\n",
       "      <td>72.549000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>2008</td>\n",
       "      <td>6.163057</td>\n",
       "      <td>7.105660</td>\n",
       "      <td>1361.647799</td>\n",
       "      <td>5.630449</td>\n",
       "      <td>1.488936</td>\n",
       "      <td>2.042889e+04</td>\n",
       "      <td>75.974843</td>\n",
       "      <td>85.786164</td>\n",
       "      <td>...</td>\n",
       "      <td>89.182390</td>\n",
       "      <td>50.817610</td>\n",
       "      <td>88.553459</td>\n",
       "      <td>12.535849</td>\n",
       "      <td>24.105912</td>\n",
       "      <td>20.868679</td>\n",
       "      <td>0.457358</td>\n",
       "      <td>2.479497</td>\n",
       "      <td>12.123648</td>\n",
       "      <td>72.570943</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>2009</td>\n",
       "      <td>6.310912</td>\n",
       "      <td>7.203425</td>\n",
       "      <td>3192.172944</td>\n",
       "      <td>6.532222</td>\n",
       "      <td>2.485864</td>\n",
       "      <td>5.099594e+03</td>\n",
       "      <td>79.779006</td>\n",
       "      <td>87.624309</td>\n",
       "      <td>...</td>\n",
       "      <td>89.171271</td>\n",
       "      <td>33.922652</td>\n",
       "      <td>88.950276</td>\n",
       "      <td>13.163536</td>\n",
       "      <td>24.622431</td>\n",
       "      <td>20.866077</td>\n",
       "      <td>0.305304</td>\n",
       "      <td>2.490608</td>\n",
       "      <td>12.637238</td>\n",
       "      <td>74.085193</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>2010</td>\n",
       "      <td>6.350053</td>\n",
       "      <td>7.201436</td>\n",
       "      <td>1957.287234</td>\n",
       "      <td>7.670934</td>\n",
       "      <td>1.704828</td>\n",
       "      <td>3.586398e+03</td>\n",
       "      <td>79.574468</td>\n",
       "      <td>90.531915</td>\n",
       "      <td>...</td>\n",
       "      <td>87.021277</td>\n",
       "      <td>47.021277</td>\n",
       "      <td>92.446809</td>\n",
       "      <td>13.129787</td>\n",
       "      <td>25.439468</td>\n",
       "      <td>20.362979</td>\n",
       "      <td>0.423191</td>\n",
       "      <td>2.588511</td>\n",
       "      <td>12.704787</td>\n",
       "      <td>74.648723</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>5</td>\n",
       "      <td>2011</td>\n",
       "      <td>6.227706</td>\n",
       "      <td>7.297403</td>\n",
       "      <td>2351.420346</td>\n",
       "      <td>6.464574</td>\n",
       "      <td>1.530588</td>\n",
       "      <td>2.734490e+03</td>\n",
       "      <td>88.138528</td>\n",
       "      <td>88.225108</td>\n",
       "      <td>...</td>\n",
       "      <td>86.320346</td>\n",
       "      <td>46.406926</td>\n",
       "      <td>80.952381</td>\n",
       "      <td>14.542857</td>\n",
       "      <td>24.791255</td>\n",
       "      <td>20.198961</td>\n",
       "      <td>0.417662</td>\n",
       "      <td>2.266667</td>\n",
       "      <td>13.429610</td>\n",
       "      <td>75.647013</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>6</td>\n",
       "      <td>2012</td>\n",
       "      <td>6.632534</td>\n",
       "      <td>7.298973</td>\n",
       "      <td>1401.078767</td>\n",
       "      <td>5.468621</td>\n",
       "      <td>1.564413</td>\n",
       "      <td>1.071750e+06</td>\n",
       "      <td>92.260274</td>\n",
       "      <td>90.684932</td>\n",
       "      <td>...</td>\n",
       "      <td>91.027397</td>\n",
       "      <td>54.109589</td>\n",
       "      <td>84.589041</td>\n",
       "      <td>15.222945</td>\n",
       "      <td>25.482466</td>\n",
       "      <td>21.300411</td>\n",
       "      <td>0.486986</td>\n",
       "      <td>2.368493</td>\n",
       "      <td>14.107740</td>\n",
       "      <td>78.969041</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>7</td>\n",
       "      <td>2013</td>\n",
       "      <td>6.314741</td>\n",
       "      <td>7.187160</td>\n",
       "      <td>1564.531496</td>\n",
       "      <td>5.197638</td>\n",
       "      <td>1.728101</td>\n",
       "      <td>6.688336e+05</td>\n",
       "      <td>85.977011</td>\n",
       "      <td>86.436782</td>\n",
       "      <td>...</td>\n",
       "      <td>88.199234</td>\n",
       "      <td>51.877395</td>\n",
       "      <td>98.850575</td>\n",
       "      <td>14.186207</td>\n",
       "      <td>24.288736</td>\n",
       "      <td>20.638621</td>\n",
       "      <td>0.466897</td>\n",
       "      <td>2.767816</td>\n",
       "      <td>12.661149</td>\n",
       "      <td>75.009425</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>8</td>\n",
       "      <td>2014</td>\n",
       "      <td>6.251883</td>\n",
       "      <td>7.217284</td>\n",
       "      <td>1819.533333</td>\n",
       "      <td>5.288655</td>\n",
       "      <td>1.528807</td>\n",
       "      <td>2.190088e+06</td>\n",
       "      <td>88.852459</td>\n",
       "      <td>87.049180</td>\n",
       "      <td>...</td>\n",
       "      <td>89.098361</td>\n",
       "      <td>51.639344</td>\n",
       "      <td>99.508197</td>\n",
       "      <td>14.660656</td>\n",
       "      <td>24.460820</td>\n",
       "      <td>20.849016</td>\n",
       "      <td>0.464754</td>\n",
       "      <td>2.786230</td>\n",
       "      <td>13.612377</td>\n",
       "      <td>76.833852</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>9 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   index  year        do        ph           co        bod        na  \\\n",
       "0      0  2006  6.339856  7.247588  1604.124000  13.338644  1.897361   \n",
       "1      1  2007  6.348276  7.221667  1919.794872   8.295763  1.262653   \n",
       "2      2  2008  6.163057  7.105660  1361.647799   5.630449  1.488936   \n",
       "3      3  2009  6.310912  7.203425  3192.172944   6.532222  2.485864   \n",
       "4      4  2010  6.350053  7.201436  1957.287234   7.670934  1.704828   \n",
       "5      5  2011  6.227706  7.297403  2351.420346   6.464574  1.530588   \n",
       "6      6  2012  6.632534  7.298973  1401.078767   5.468621  1.564413   \n",
       "7      7  2013  6.314741  7.187160  1564.531496   5.197638  1.728101   \n",
       "8      8  2014  6.251883  7.217284  1819.533333   5.288655  1.528807   \n",
       "\n",
       "             tc        npH        ndo    ...           nbdo        nec  \\\n",
       "0  9.694549e+03  81.568627  85.294118    ...      83.333333  29.411765   \n",
       "1  3.124019e+04  83.333333  87.666667    ...      87.666667  45.000000   \n",
       "2  2.042889e+04  75.974843  85.786164    ...      89.182390  50.817610   \n",
       "3  5.099594e+03  79.779006  87.624309    ...      89.171271  33.922652   \n",
       "4  3.586398e+03  79.574468  90.531915    ...      87.021277  47.021277   \n",
       "5  2.734490e+03  88.138528  88.225108    ...      86.320346  46.406926   \n",
       "6  1.071750e+06  92.260274  90.684932    ...      91.027397  54.109589   \n",
       "7  6.688336e+05  85.977011  86.436782    ...      88.199234  51.877395   \n",
       "8  2.190088e+06  88.852459  87.049180    ...      89.098361  51.639344   \n",
       "\n",
       "         nna        wph        wdo       wbdo       wec       wna        wco  \\\n",
       "0  94.901961  13.458824  23.967647  19.500000  0.264706  2.657255  11.460392   \n",
       "1  81.666667  13.750000  24.634333  20.514000  0.405000  2.286667  10.959000   \n",
       "2  88.553459  12.535849  24.105912  20.868679  0.457358  2.479497  12.123648   \n",
       "3  88.950276  13.163536  24.622431  20.866077  0.305304  2.490608  12.637238   \n",
       "4  92.446809  13.129787  25.439468  20.362979  0.423191  2.588511  12.704787   \n",
       "5  80.952381  14.542857  24.791255  20.198961  0.417662  2.266667  13.429610   \n",
       "6  84.589041  15.222945  25.482466  21.300411  0.486986  2.368493  14.107740   \n",
       "7  98.850575  14.186207  24.288736  20.638621  0.466897  2.767816  12.661149   \n",
       "8  99.508197  14.660656  24.460820  20.849016  0.464754  2.786230  13.612377   \n",
       "\n",
       "         wqi  \n",
       "0  71.308824  \n",
       "1  72.549000  \n",
       "2  72.570943  \n",
       "3  74.085193  \n",
       "4  74.648723  \n",
       "5  75.647013  \n",
       "6  78.969041  \n",
       "7  75.009425  \n",
       "8  76.833852  \n",
       "\n",
       "[9 rows x 21 columns]"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn import neighbors, datasets\n",
    "data = data.reset_index(level = 0, inplace = False)\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hp\\Anaconda3\\lib\\site-packages\\sklearn\\cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n",
      "  \"This module will be removed in 0.20.\", DeprecationWarning)\n"
     ]
    }
   ],
   "source": [
    "from sklearn import linear_model\n",
    "from sklearn.cross_validation import train_test_split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "cols = ['year']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "y = data['wqi']\n",
    "x = data[cols]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "reg = linear_model.LinearRegression()\n",
    "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state = 4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "reg.fit(x_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([73.85895419, 74.59338162])"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = reg.predict(x_test)\n",
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3    74.085193\n",
       "4    74.648723\n",
       "Name: wqi, dtype: float64"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mse:0.03\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error\n",
    "print('mse:%.2f'%mean_squared_error(y_test,a))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "dt = pd.DataFrame({'Actual': y_test, 'Predicted': a})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.        , -1.46059349],\n",
       "       [ 1.        , -1.09544512],\n",
       "       [ 1.        , -0.73029674],\n",
       "       [ 1.        , -0.36514837],\n",
       "       [ 1.        ,  0.        ],\n",
       "       [ 1.        ,  0.36514837],\n",
       "       [ 1.        ,  0.73029674],\n",
       "       [ 1.        ,  1.09544512],\n",
       "       [ 1.        ,  1.46059349]])"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#using gradient descent to optimize it further\n",
    "x = (x - x.mean()) / x.std()\n",
    "x = np.c_[np.ones(x.shape[0]), x]\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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fn5+x/vt27eze/duxowZ40hOEREREZHTVVe0F4zBO32401HkBFQkhqhly5Zx0003MWXKFGJiYjrGb7zxRtrb25kwYQJz587lscce+1QnUkREREQkVLXXt1L/9gFiswYRkaC/w4YqEy7LF3Nzc21xcfGnxrZu3UpGRoZDiZwX7ucvIiIiIr2r9tVd1L66m8G3ZRM5OM7pOGHHGFNirc3tbJ46iSIiIiIi0uMCLe3UbdhH9NhkFYghTkWiiIiIiIj0uIaSgwTq2/AVpDodRTqhIlFERERERHqUbbf41+0l6iwfUWnxTseRTqhIFBERERGRHtW4+TDtlU34ClJP+Kg3CR0qEkVEREREpMdYa/EXlhMxMIbojAFOx5FToCJRRERERER6TPOOalr31uHLT8W41EXsC1QkioiIiIhIj/EXluPyRRKbPcjpKHKKVCSKiIiIiEiPaNlbR3NpNd5pwzERKj36Cv2kHFZWVkZGRgYLFy5k3LhxzJo1i8bGRnbs2MEll1zCxIkTyc7OZufOnVhr+eEPf8j48eOZMGECTz31lNPxRUREREROyF9YjvG48V4w1OkochoinA4QKn5aWs7musZu3ed4bwy/HNX5c2BKS0tZsWIFS5YsYc6cOaxcuZL777+f22+/ndmzZ9PU1EQgEODZZ59l48aNvPfeexw+fJjzzz+f/Px8hg7VbzoRERERCS1tlU00vl+BN284rhiVHX2JOokhID09naysLABycnL4+OOP2bt3L7NnzwYgOjqa2NhYioqKuPrqq3G73QwePJiCggLefvttJ6OLiIiIiByXf105uAy+acOdjiKnSSV90Kl0/HqKx+PpeO12u6mqqjruPGttb0USEREREemy9vpWGooPEps1CHeCp/MNJKSokxiC4uPjSU1N5fnnnwegubmZhoYG8vPzeeqpp2hvb6eiooLCwkImT57scFoRERERkU+r37AP2xrAl68uYl+kIjFEPfHEEyxevJjMzEymTp3KgQMHmD17NpmZmUycOJGLL76Ye+65hyFDhjgdVURERESkQ6Clnbr1+4jOSCZycJzTcaQLTLgsYczNzbXFxcWfGtu6dSsZGRkOJXJeuJ+/iIiIiHS/uvX7qP7rTlJuyMSTluB0HDmGMabEWpvb2Tx1EkVEREREpFvYdot/XTlRZ/mIGhnvdBzpIhWJIiIiIiLSLRo3V9Be1YyvYATGGKfjSBepSBQRERERkTNmrcW/tpyIlBiiM5KdjiNnQEWiiIiIiIicseYd1bTuq8eXn4pxqYvYl6lIFBERERGRM+ZfW47LF0XspEFOR5EzpCJRRERERETOSMveOpp3VOObPgwToRKjr9NPMETNmDGDzz6y43jS0tI4fPhwLyQSERERETk+f2E5xuMm7oKhTkeRbqAiUUREREREuqytsonG9yuIu2AorugIp+NIN1CR6LCysjIyMjJYuHAh48aNY9asWTQ2NgLwv//7v0ydOpXx48fz1ltvAXDkyBFmzZrFpEmT+I//+A+DyLgUAAAgAElEQVSstR37uu+++xg/fjzjx4/nt7/9rSPnIyIiIiLhxb+uHFwG37RhTkeRbqJSP+jOF7fwwb7abt3necPiuePL4zqdV1payooVK1iyZAlz5sxh5cqVANTX17N+/XoKCwtZsGABmzdv5s4772T69On87Gc/429/+xuPPPIIACUlJSxbtow333wTay0XXHABBQUFTJo0qVvPSURERETkE+11LTQUHyQ2axDuBI/TcaSbqJMYAtLT08nKygIgJyeHsrIyAK6++moA8vPzqa2tpbq6msLCQubNmwfA5ZdfTlJSEgBFRUXMnj2buLg4vF4vV155JevWrev9kxERERGRsFG3YT+2NYCvINXpKNKN1EkMOpWOX0/xeP71ry5ut7tjuakxn36+zCfvPzsOfGrZqYiIiIhITwu0tFO/YR/RGclEDop1Oo50I3USQ9hTTz0FHO0SJiQkkJCQQH5+PsuXLwfg5ZdfpqqqCjjabXz++edpaGigvr6e5557jry8PMeyi4iISHiz1lL59HaOPLmNtsomp+NID2h4+wCBhjZ1EfshdRJDWFJSElOnTqW2tpalS5cCcMcdd3D11VeTnZ1NQUEBZ511FgDZ2dl85zvfYfLkyQD8+7//u65HFBEREcc0FB+koeQguKBx82F8ean4ZozA5XE7HU26gW23+NftJWpkPJ60BKfjSDcz4bJMMTc31372uYNbt24lIyPDoUTOC/fzFxERkZ7RXtPMgd+UEDnUS/Lc0dT+vYyGjRW4fFEkXJpG7KRBGNfnL5+RvqNh4yEqn/yQAdeeR8x5A5yOI6fIGFNirc3tbJ6Wm4qIiIhIt7HWUvXcDmi3JH99FBGJ0SR/cywpN07Eneih6unt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\n",
      "text/plain": [
       "<Figure size 1080x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "data=data.set_index('year')\n",
    "data.plot(figsize=(15,6))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Gradient Descent: 74.62, 2.00\n"
     ]
    }
   ],
   "source": [
    "alpha = 0.1 #Step size\n",
    "iterations = 3000 #No. of iterations\n",
    "m = y.size #No. of data points\n",
    "np.random.seed(4) #Setting the seed\n",
    "theta = np.random.rand(2) #Picking some random values to start with\n",
    "\n",
    "def gradient_descent(x, y, theta, iterations, alpha):\n",
    "    past_costs = []\n",
    "    past_thetas = [theta]\n",
    "    for i in range(iterations):\n",
    "        prediction = np.dot(x, theta)\n",
    "        error = prediction - y\n",
    "        cost = 1/(2*m) * np.dot(error.T, error)\n",
    "        past_costs.append(cost)\n",
    "        theta = theta - (alpha * (1/m) * np.dot(x.T, error))\n",
    "        past_thetas.append(theta)\n",
    "        \n",
    "    return past_thetas, past_costs\n",
    "\n",
    "past_thetas, past_costs = gradient_descent(x, y, theta, iterations, alpha)\n",
    "theta = past_thetas[-1]\n",
    "\n",
    "#Print the results...\n",
    "print(\"Gradient Descent: {:.2f}, {:.2f}\".format(theta[0], theta[1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.title('Cost Function J')\n",
    "plt.xlabel('No. of iterations')\n",
    "plt.ylabel('Cost')\n",
    "plt.plot(past_costs)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "newB=[74.76, 2.13]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "def rmse(y,y_pred):\n",
    "    rmse= np.sqrt(sum(y-y_pred))\n",
    "    return rmse"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>index</th>\n",
       "      <th>do</th>\n",
       "      <th>ph</th>\n",
       "      <th>co</th>\n",
       "      <th>bod</th>\n",
       "      <th>na</th>\n",
       "      <th>tc</th>\n",
       "      <th>npH</th>\n",
       "      <th>ndo</th>\n",
       "      <th>nco</th>\n",
       "      <th>...</th>\n",
       "      <th>nna</th>\n",
       "      <th>wph</th>\n",
       "      <th>wdo</th>\n",
       "      <th>wbdo</th>\n",
       "      <th>wec</th>\n",
       "      <th>wna</th>\n",
       "      <th>wco</th>\n",
       "      <th>wqi</th>\n",
       "      <th>Actual</th>\n",
       "      <th>Predicted</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>71.308824</td>\n",
       "      <td>71.648936</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>72.549000</td>\n",
       "      <td>72.426702</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>72.570943</td>\n",
       "      <td>73.204468</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>74.085193</td>\n",
       "      <td>73.982234</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>74.648723</td>\n",
       "      <td>74.760000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>75.647013</td>\n",
       "      <td>75.537766</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>78.969041</td>\n",
       "      <td>76.315532</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>75.009425</td>\n",
       "      <td>77.093298</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>76.833852</td>\n",
       "      <td>77.871064</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2006</th>\n",
       "      <td>0.0</td>\n",
       "      <td>6.339856</td>\n",
       "      <td>7.247588</td>\n",
       "      <td>1604.124000</td>\n",
       "      <td>13.338644</td>\n",
       "      <td>1.897361</td>\n",
       "      <td>9.694549e+03</td>\n",
       "      <td>81.568627</td>\n",
       "      <td>85.294118</td>\n",
       "      <td>40.784314</td>\n",
       "      <td>...</td>\n",
       "      <td>94.901961</td>\n",
       "      <td>13.458824</td>\n",
       "      <td>23.967647</td>\n",
       "      <td>19.500000</td>\n",
       "      <td>0.264706</td>\n",
       "      <td>2.657255</td>\n",
       "      <td>11.460392</td>\n",
       "      <td>71.308824</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2007</th>\n",
       "      <td>1.0</td>\n",
       "      <td>6.348276</td>\n",
       "      <td>7.221667</td>\n",
       "      <td>1919.794872</td>\n",
       "      <td>8.295763</td>\n",
       "      <td>1.262653</td>\n",
       "      <td>3.124019e+04</td>\n",
       "      <td>83.333333</td>\n",
       "      <td>87.666667</td>\n",
       "      <td>39.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>81.666667</td>\n",
       "      <td>13.750000</td>\n",
       "      <td>24.634333</td>\n",
       "      <td>20.514000</td>\n",
       "      <td>0.405000</td>\n",
       "      <td>2.286667</td>\n",
       "      <td>10.959000</td>\n",
       "      <td>72.549000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008</th>\n",
       "      <td>2.0</td>\n",
       "      <td>6.163057</td>\n",
       "      <td>7.105660</td>\n",
       "      <td>1361.647799</td>\n",
       "      <td>5.630449</td>\n",
       "      <td>1.488936</td>\n",
       "      <td>2.042889e+04</td>\n",
       "      <td>75.974843</td>\n",
       "      <td>85.786164</td>\n",
       "      <td>43.144654</td>\n",
       "      <td>...</td>\n",
       "      <td>88.553459</td>\n",
       "      <td>12.535849</td>\n",
       "      <td>24.105912</td>\n",
       "      <td>20.868679</td>\n",
       "      <td>0.457358</td>\n",
       "      <td>2.479497</td>\n",
       "      <td>12.123648</td>\n",
       "      <td>72.570943</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2009</th>\n",
       "      <td>3.0</td>\n",
       "      <td>6.310912</td>\n",
       "      <td>7.203425</td>\n",
       "      <td>3192.172944</td>\n",
       "      <td>6.532222</td>\n",
       "      <td>2.485864</td>\n",
       "      <td>5.099594e+03</td>\n",
       "      <td>79.779006</td>\n",
       "      <td>87.624309</td>\n",
       "      <td>44.972376</td>\n",
       "      <td>...</td>\n",
       "      <td>88.950276</td>\n",
       "      <td>13.163536</td>\n",
       "      <td>24.622431</td>\n",
       "      <td>20.866077</td>\n",
       "      <td>0.305304</td>\n",
       "      <td>2.490608</td>\n",
       "      <td>12.637238</td>\n",
       "      <td>74.085193</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010</th>\n",
       "      <td>4.0</td>\n",
       "      <td>6.350053</td>\n",
       "      <td>7.201436</td>\n",
       "      <td>1957.287234</td>\n",
       "      <td>7.670934</td>\n",
       "      <td>1.704828</td>\n",
       "      <td>3.586398e+03</td>\n",
       "      <td>79.574468</td>\n",
       "      <td>90.531915</td>\n",
       "      <td>45.212766</td>\n",
       "      <td>...</td>\n",
       "      <td>92.446809</td>\n",
       "      <td>13.129787</td>\n",
       "      <td>25.439468</td>\n",
       "      <td>20.362979</td>\n",
       "      <td>0.423191</td>\n",
       "      <td>2.588511</td>\n",
       "      <td>12.704787</td>\n",
       "      <td>74.648723</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011</th>\n",
       "      <td>5.0</td>\n",
       "      <td>6.227706</td>\n",
       "      <td>7.297403</td>\n",
       "      <td>2351.420346</td>\n",
       "      <td>6.464574</td>\n",
       "      <td>1.530588</td>\n",
       "      <td>2.734490e+03</td>\n",
       "      <td>88.138528</td>\n",
       "      <td>88.225108</td>\n",
       "      <td>47.792208</td>\n",
       "      <td>...</td>\n",
       "      <td>80.952381</td>\n",
       "      <td>14.542857</td>\n",
       "      <td>24.791255</td>\n",
       "      <td>20.198961</td>\n",
       "      <td>0.417662</td>\n",
       "      <td>2.266667</td>\n",
       "      <td>13.429610</td>\n",
       "      <td>75.647013</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012</th>\n",
       "      <td>6.0</td>\n",
       "      <td>6.632534</td>\n",
       "      <td>7.298973</td>\n",
       "      <td>1401.078767</td>\n",
       "      <td>5.468621</td>\n",
       "      <td>1.564413</td>\n",
       "      <td>1.071750e+06</td>\n",
       "      <td>92.260274</td>\n",
       "      <td>90.684932</td>\n",
       "      <td>50.205479</td>\n",
       "      <td>...</td>\n",
       "      <td>84.589041</td>\n",
       "      <td>15.222945</td>\n",
       "      <td>25.482466</td>\n",
       "      <td>21.300411</td>\n",
       "      <td>0.486986</td>\n",
       "      <td>2.368493</td>\n",
       "      <td>14.107740</td>\n",
       "      <td>78.969041</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013</th>\n",
       "      <td>7.0</td>\n",
       "      <td>6.314741</td>\n",
       "      <td>7.187160</td>\n",
       "      <td>1564.531496</td>\n",
       "      <td>5.197638</td>\n",
       "      <td>1.728101</td>\n",
       "      <td>6.688336e+05</td>\n",
       "      <td>85.977011</td>\n",
       "      <td>86.436782</td>\n",
       "      <td>45.057471</td>\n",
       "      <td>...</td>\n",
       "      <td>98.850575</td>\n",
       "      <td>14.186207</td>\n",
       "      <td>24.288736</td>\n",
       "      <td>20.638621</td>\n",
       "      <td>0.466897</td>\n",
       "      <td>2.767816</td>\n",
       "      <td>12.661149</td>\n",
       "      <td>75.009425</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014</th>\n",
       "      <td>8.0</td>\n",
       "      <td>6.251883</td>\n",
       "      <td>7.217284</td>\n",
       "      <td>1819.533333</td>\n",
       "      <td>5.288655</td>\n",
       "      <td>1.528807</td>\n",
       "      <td>2.190088e+06</td>\n",
       "      <td>88.852459</td>\n",
       "      <td>87.049180</td>\n",
       "      <td>48.442623</td>\n",
       "      <td>...</td>\n",
       "      <td>99.508197</td>\n",
       "      <td>14.660656</td>\n",
       "      <td>24.460820</td>\n",
       "      <td>20.849016</td>\n",
       "      <td>0.464754</td>\n",
       "      <td>2.786230</td>\n",
       "      <td>13.612377</td>\n",
       "      <td>76.833852</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>18 rows × 22 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      index        do        ph           co        bod        na  \\\n",
       "0       NaN       NaN       NaN          NaN        NaN       NaN   \n",
       "1       NaN       NaN       NaN          NaN        NaN       NaN   \n",
       "2       NaN       NaN       NaN          NaN        NaN       NaN   \n",
       "3       NaN       NaN       NaN          NaN        NaN       NaN   \n",
       "4       NaN       NaN       NaN          NaN        NaN       NaN   \n",
       "5       NaN       NaN       NaN          NaN        NaN       NaN   \n",
       "6       NaN       NaN       NaN          NaN        NaN       NaN   \n",
       "7       NaN       NaN       NaN          NaN        NaN       NaN   \n",
       "8       NaN       NaN       NaN          NaN        NaN       NaN   \n",
       "2006    0.0  6.339856  7.247588  1604.124000  13.338644  1.897361   \n",
       "2007    1.0  6.348276  7.221667  1919.794872   8.295763  1.262653   \n",
       "2008    2.0  6.163057  7.105660  1361.647799   5.630449  1.488936   \n",
       "2009    3.0  6.310912  7.203425  3192.172944   6.532222  2.485864   \n",
       "2010    4.0  6.350053  7.201436  1957.287234   7.670934  1.704828   \n",
       "2011    5.0  6.227706  7.297403  2351.420346   6.464574  1.530588   \n",
       "2012    6.0  6.632534  7.298973  1401.078767   5.468621  1.564413   \n",
       "2013    7.0  6.314741  7.187160  1564.531496   5.197638  1.728101   \n",
       "2014    8.0  6.251883  7.217284  1819.533333   5.288655  1.528807   \n",
       "\n",
       "                tc        npH        ndo        nco    ...            nna  \\\n",
       "0              NaN        NaN        NaN        NaN    ...            NaN   \n",
       "1              NaN        NaN        NaN        NaN    ...            NaN   \n",
       "2              NaN        NaN        NaN        NaN    ...            NaN   \n",
       "3              NaN        NaN        NaN        NaN    ...            NaN   \n",
       "4              NaN        NaN        NaN        NaN    ...            NaN   \n",
       "5              NaN        NaN        NaN        NaN    ...            NaN   \n",
       "6              NaN        NaN        NaN        NaN    ...            NaN   \n",
       "7              NaN        NaN        NaN        NaN    ...            NaN   \n",
       "8              NaN        NaN        NaN        NaN    ...            NaN   \n",
       "2006  9.694549e+03  81.568627  85.294118  40.784314    ...      94.901961   \n",
       "2007  3.124019e+04  83.333333  87.666667  39.000000    ...      81.666667   \n",
       "2008  2.042889e+04  75.974843  85.786164  43.144654    ...      88.553459   \n",
       "2009  5.099594e+03  79.779006  87.624309  44.972376    ...      88.950276   \n",
       "2010  3.586398e+03  79.574468  90.531915  45.212766    ...      92.446809   \n",
       "2011  2.734490e+03  88.138528  88.225108  47.792208    ...      80.952381   \n",
       "2012  1.071750e+06  92.260274  90.684932  50.205479    ...      84.589041   \n",
       "2013  6.688336e+05  85.977011  86.436782  45.057471    ...      98.850575   \n",
       "2014  2.190088e+06  88.852459  87.049180  48.442623    ...      99.508197   \n",
       "\n",
       "            wph        wdo       wbdo       wec       wna        wco  \\\n",
       "0           NaN        NaN        NaN       NaN       NaN        NaN   \n",
       "1           NaN        NaN        NaN       NaN       NaN        NaN   \n",
       "2           NaN        NaN        NaN       NaN       NaN        NaN   \n",
       "3           NaN        NaN        NaN       NaN       NaN        NaN   \n",
       "4           NaN        NaN        NaN       NaN       NaN        NaN   \n",
       "5           NaN        NaN        NaN       NaN       NaN        NaN   \n",
       "6           NaN        NaN        NaN       NaN       NaN        NaN   \n",
       "7           NaN        NaN        NaN       NaN       NaN        NaN   \n",
       "8           NaN        NaN        NaN       NaN       NaN        NaN   \n",
       "2006  13.458824  23.967647  19.500000  0.264706  2.657255  11.460392   \n",
       "2007  13.750000  24.634333  20.514000  0.405000  2.286667  10.959000   \n",
       "2008  12.535849  24.105912  20.868679  0.457358  2.479497  12.123648   \n",
       "2009  13.163536  24.622431  20.866077  0.305304  2.490608  12.637238   \n",
       "2010  13.129787  25.439468  20.362979  0.423191  2.588511  12.704787   \n",
       "2011  14.542857  24.791255  20.198961  0.417662  2.266667  13.429610   \n",
       "2012  15.222945  25.482466  21.300411  0.486986  2.368493  14.107740   \n",
       "2013  14.186207  24.288736  20.638621  0.466897  2.767816  12.661149   \n",
       "2014  14.660656  24.460820  20.849016  0.464754  2.786230  13.612377   \n",
       "\n",
       "            wqi     Actual  Predicted  \n",
       "0           NaN  71.308824  71.648936  \n",
       "1           NaN  72.549000  72.426702  \n",
       "2           NaN  72.570943  73.204468  \n",
       "3           NaN  74.085193  73.982234  \n",
       "4           NaN  74.648723  74.760000  \n",
       "5           NaN  75.647013  75.537766  \n",
       "6           NaN  78.969041  76.315532  \n",
       "7           NaN  75.009425  77.093298  \n",
       "8           NaN  76.833852  77.871064  \n",
       "2006  71.308824        NaN        NaN  \n",
       "2007  72.549000        NaN        NaN  \n",
       "2008  72.570943        NaN        NaN  \n",
       "2009  74.085193        NaN        NaN  \n",
       "2010  74.648723        NaN        NaN  \n",
       "2011  75.647013        NaN        NaN  \n",
       "2012  78.969041        NaN        NaN  \n",
       "2013  75.009425        NaN        NaN  \n",
       "2014  76.833852        NaN        NaN  \n",
       "\n",
       "[18 rows x 22 columns]"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred=x.dot(newB)\n",
    "\n",
    "dt = pd.DataFrame({'Actual': y, 'Predicted': y_pred})  \n",
    "dt=pd.concat([data, dt], axis=1)\n",
    "dt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.2030677776262582\n"
     ]
    }
   ],
   "source": [
    "#testing the accuracy of the model\n",
    "\n",
    "from sklearn import metrics\n",
    "print(np.sqrt(metrics.mean_squared_error(y,y_pred)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "ename": "AttributeError",
     "evalue": "'DataFrame' object has no attribute 'year'",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-56-65aed8e68926>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[1;31m#plotting the actual and predicted results\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mx_axis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0myear\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      3\u001b[0m \u001b[0my_axis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mActual\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      4\u001b[0m \u001b[0my1_axis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mPredicted\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      5\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mscatter\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx_axis\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0my_axis\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\pandas\\core\\generic.py\u001b[0m in \u001b[0;36m__getattr__\u001b[1;34m(self, name)\u001b[0m\n\u001b[0;32m   4374\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_info_axis\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_can_hold_identifiers_and_holds_name\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   4375\u001b[0m                 \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 4376\u001b[1;33m             \u001b[1;32mreturn\u001b[0m \u001b[0mobject\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__getattribute__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m   4377\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m   4378\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0m__setattr__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mname\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mAttributeError\u001b[0m: 'DataFrame' object has no attribute 'year'"
     ]
    }
   ],
   "source": [
    "#plotting the actual and predicted results\n",
    "x_axis=dt.year\n",
    "y_axis=dt.Actual\n",
    "y1_axis=dt.Predicted\n",
    "plt.scatter(x_axis,y_axis)\n",
    "plt.plot(x_axis,y1_axis,color='r')\n",
    "plt.title(\"linear regression\")\n",
    "\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
